Hem elimizin altında çerez olarak bulunması hem de sitenin hitini artırması açısından bu makalede T-SQL tarafında kullanabileceğimiz metin fonksiyonlarını örnekleyeceğiz.
1. CHARINDEX fonksiyonu 2 parametre almaktadır. 1.parametredeki değerin 2.parametre olarak verilmiş değerde olup olmadığını belirtir. Varsa karakter numarasını yoksa “0¨ değerini döndürür.
SELECT CHARINDEX ('U','BUGÜN HAVA ÇOK GÜZEL') --2 SELECT CHARINDEX ('A','BUGÜN HAVA ÇOK GÜZEL') --8 SELECT CHARINDEX ('HAVA','BUGÜN HAVA ÇOK GÜZEL') --7 SELECT CHARINDEX ('ABC','BUGÜN HAVA ÇOK GÜZEL') --0
CHARINDEX fonksiyonu seçmeli olarak 3.parametre de alabilir. Bu parametre aramanın yapılacağı başlangıç konumunu belirtir. Örneğin üstteki 2.SELECT cümlesi bulduğu ilk “A”nın konumunu döndürdü. 9.karakterden itibaren arama yapmasını istediğimizde 2.”A”yı bulmuş olacaktır.
SELECT CHARINDEX ('A','BUGÜN HAVA ÇOK GÜZEL',9) --10
Aynı amaç için PATINDEX fonksiyonu da kullanılmaktadır. PATINDEX fonksiyonu, CHARINDEX’den farklı olarak joker karakterlerini destekler. Ayrıca CHARINDEX’te aramanın yapılacağı konum belirtilebilir fakat PATINDEX, aramaya metnin ilk karakterinde itibaren başlar.
PATINDEX (‘%Aranılan Karakter%’, ‘Aranılacak Metin’)
SELECT PATINDEX ('A','BUGÜN HAVA ÇOK GÜZEL') --0 SELECT PATINDEX ('B%','BUGÜN HAVA ÇOK GÜZEL') --1 SELECT PATINDEX ('%A%','BUGÜN HAVA ÇOK GÜZEL') --8
2. LEFT ve RIGHT fonksiyonları 2 parametre alıp bir metnin sağından veya solundan ne kadar keseceğini belirtir. Kaç karakterin alınacağı 2.parametre olarak verilir.
SELECT LEFT('BUGÜN HAVA ÇOK GÜZEL',5)--BUGÜN SELECT LEFT('BUGÜN HAVA ÇOK GÜZEL',100)--BUGÜN HAVA ÇOK GÜZEL SELECT RIGHT('BUGÜN HAVA ÇOK GÜZEL',5)--GÜZEL SELECT RIGHT('BUGÜN HAVA ÇOK GÜZEL',500)--BUGÜN HAVA ÇOK GÜZEL
3. LEN fonksiyonu parametre olarak aldığı metnin uzunluğunu belirtir.
SELECT LEN('BUGÜN HAVA ÇOK GÜZEL')--20 SELECT LEN('BUGÜN HAVA ÇOK GÜZEL ')--20 SELECT LEN('BUGÜN HAVA ÇOK GÜZEL')--25
4. REPLACE fonksiyonu 3 parametre alıp bir metnin içindeki bir karakteri başka bir karakterle değiştirmeyi sağlar. İlk parametre değişiklik yapılacak metni, ikinci parametre metin içinde aranacak veriyi, üçüncü parametre de bu verinin hangi veriyle değiştirileceği belirtilir.
SELECT REPLACE('BUGÜN HAVA ÇOK GÜZEL','GÜZEL','KÖTÜ') --BUGÜN HAVA ÇOK KÖTÜ SELECT REPLACE('BUGÜN HAVA ÇOK GÜZEL','KÖTÜ','GÜZEL') --BUGÜN HAVA ÇOK GÜZEL
5. STUFF fonksiyonu 4 parametre alır. Bir metnin belli bir alanını başka bir metin ile değiştirmek için kullanılır. 2. parametrede değişimin hangi karakter numarasından sonra yapılacağını, 3.parametre de o numaradan sonraki karaker uzunluğunu belirtir. 3. parametredeki uzunluk bilgisi o kadar metnin sileceğini belirtir.
SELECT STUFF('BUGÜN HAVA ÇOK GÜZEL',7,4,'GÖZYÜZÜ') --BUGÜN GÖZYÜZÜ ÇOK GÜZEL SELECT STUFF('BUGÜN HAVA ÇOK GÜZEL',7,0,'GÖZYÜZÜ ve ') --BUGÜN GÖZYÜZÜ ve HAVA ÇOK GÜZEL
Bu fonksiyonlarda sabit değer verdiğimiz gibi tablodaki bir kolonu da parametre olarak verebiliriz. Ayrıca COLLATE yantümcesi kullanılarak karakter tipinin nasıl yorumlanacağı da belirtilebilir.
6. SUBSTRING fonksiyonu en çok kullanılan fonksiyonlardan biri olup bir metnin belirlenmiş başlangıç noktasından itibaren parametre olarak verilmiş uzunluk kadar karakteri döndürür.
SELECT SUBSTRING('BUGÜN HAVA ÇOK GÜZEL',7,4)--HAVA
7. LOWER ve UPPER fonksiyonları metni küçük veya büyük harfe çevirir.
SELECT LOWER('BUGÜN HAVA ÇOK GÜZEL')--bugün hava çok güzel SELECT UPPER('Bugün HAVA çok GÜZEL')--BUGÜN HAVA ÇOK GÜZEL
8. REVERSE fonksiyonu parametre olarak metni tersten yazar.
SELECT REVERSE('BUGÜN HAVA ÇOK GÜZEL')--LEZÜG KOÇ AVAH NÜGUB
9. LTRIM ve RTRIM fonksiyonları SQL Server üzerinde metinsel verilerle uğraşan kişilerin en çok kullandığı fonksiyonlardır diye biliriz. LTRIM, metnin sol tarafındaki boşlukları, RTRIM ise sağ tarafındaki boşlukları siler.
10. STR fonksiyonu float, int ve int türlerinde olmak üzere 3 parametre alıp float değeri string türüne dönüştürür. 2.parametre string’in toplam uzunluğunu 3.parametre de ondalıklı kısmı belirtir.
SELECT STR(125.758,2,0)--** SELECT STR(125.758,3,2)--126 SELECT STR(125.758,5,1)--125.8 SELECT STR(125.758,6,2)--125.76 SELECT STR(125.758,10,2)--125.76 SELECT STR(125.758,10,3)--125.758 SELECT STR(125.758,10,4)--125.7580
11. ASCII ve CHAR fonksiyonları diğer dillerden aşina olduğumuz fonksiyonlar olup ASCII, karakterin ascii karşılığını, CHAR ise parametre aldığı ascii kodun char karşılığını döndürür.
SELECT ASCII('A')--65 SELECT CHAR(65)--A
12. REPLICATE fonksiyonu string ve int olmak üzere 2 parametre alır. Girilen sayı kadar ilk parametredeki değeri yazdırır.
SELECT REPLICATE('A',5)--AAAAA SELECT 'A'+REPLICATE(' ',5)+'X'--A X
13. SPACE fonksiyonu parametre aldığı sayı kadar boşluk karakteri döndürür.
SELECT 'A'+SPACE(5)+'X'--A X SELECT LEN('A'+SPACE(5)+'X')--7
14. QUOTENAME fonksiyonu parametre aldığı metni SQL’de geçerli tanımlayıcıları ifade eden [] içerisine alır.
SELECT QUOTENAME('Müşteri Adı Soyadı')--[Müşteri Adı Soyadı]
15. UNICODE ve NCHAR fonksiyonları ASCII ve CHAR fonksiyonlarının unicode versiyonu olup UNICODE girilen karakterin unicode değerini NCHAR ise unicode kodun karakter karşılığını döndürür.
SELECT UNICODE('A')--65 SELECT ASCII('A')--65 SELECT UNICODE(N'?')--4338 SELECT NCHAR(4338)--?