MSSQL – Bir alandaki bütün kelimeleri büyük harfle başlatmak (Capitalize the First Letter of Each Word)

Selamlar,

Gene işim düştüğü için kullandığım bir kod bloğunu, kesin daha sonra da kullanırım diye şuracığa bırakma amacı ile geri döndüm.
Fonksiyonun amacı bir hücredeki bütün kelimeleri büyük harfle başlatmak.
Belki hiç kullanmayacaksınız (Db’ye yazarken gerekli işlemleri yaptığınız için veya gerçekten hiç işinize yaramayacağı için) belki de başka yöntemler ile çözeceksiniz bu sorunu, bu bilinmez. Ama benim başıma update etmem gereken bir alan geldi ve bunun neticesinde böyle bir ihtiyacım doğdu.

Lafı uzatmadan sql function’a geçeyim.

CREATE FUNCTION [dbo].[upperFirstCharacter] 
(
    @InputString AS VARCHAR(MAX)
)
RETURNS VARCHAR(MAX) AS
BEGIN
 
SET @InputString = LOWER(ISNULL(@InputString,''))
 
DECLARE @Length INT
DECLARE @CharIndex INT
DECLARE @PChar AS CHAR(1)
 
SELECT @Length = LEN(@InputString), @CharIndex = 1 

IF(@Length > 0)
BEGIN
     WHILE @CharIndex <= @Length
    BEGIN
        SET @PChar = SUBSTRING(@InputString,@CharIndex-1,1)
         IF @PChar IN(' ','.','?',';','!','/') -- Bu alana ayraç olarak kullanacağınız karakterleri yazabilirsiniz
            SET @InputString = STUFF(@InputString,@CharIndex,1,UPPER(SUBSTRING(@InputString,@CharIndex,1)))         
         SET @CharIndex = @CharIndex + 1
    END  
END
    RETURN @InputString
END

Kullanımı ise çok daha basit

select dbo.upperFirstCharacter(kolonAdı) from tableX

Hepsi bu kadar.
Tekrar buralara uğrayana kadar kendinize iyi bakın.

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.