MS SQL ile ilk harfi büyük diğerlerini küçük yapan kullanıcı tanımlı scalar fonksiyon
Excelde ilk harfin büyük diğerlerini küçük olması için YAZIM.DÜZENİ (PROPER) fonksiyonu kullanılır. Buradaki yazdığımız fonksiyonda Yazım.Düzeni gibi çalışır. Örneğin Excelde A1 hüceresinde "YENi bİr Deneme" ifasesi olsun. Excel ile aşağıdaki formül yazılırsa,
=Yazım.Düzeni(A1)
Sonuc: Yeni Bir Deneme olur bizim fonksiyonumuzda bu işlemi sql için yapacaktır.
CREATE FUNCTION [dbo].[FN_BKUCUK] (@kelime CHAR(250))
RETURNS CHAR(250) AS
BEGIN
DECLARE @girdi CHAR(250),@sonuc CHAR(250),@say INTEGER,@uzunluk INTEGER
DECLARE @Eharf AS CHAR(1),@Yharf AS CHAR(1)
SET @girdi = RTRIM(LTRIM(@kelime))
SET @uzunluk=LEN(@girdi)
SET @say=0
SET @sonuc=''
WHILE @uzunluk>@say
BEGIN
SET @Eharf=SUBSTRING (@girdi,@say,1)
SET @say=@say+1
SET @Yharf=SUBSTRING (@girdi,@say,1)
IF @say=1 OR @Eharf='.' OR @Eharf=''
BEGIN
SET @sonuc=RTRIM(@sonuc)+' '+
LTRIM(UPPER(@Yharf COLLATE Turkish_CS_AS))
END
ELSE
BEGIN
SET @sonuc=RTRIM(@sonuc)+
LTRIM(LOWER(@Yharf COLLATE Turkish_CS_AS))
END
END
RETURN @sonuc
END
Fonksiyonun kullanılışı :
SELECT dbo.FN_BKUCUK('YENi bİr Deneme')
Sonuc: Yeni Bir Deneme