Merhabalar;
T-SQL açılımı Transact-SQL’dir. Windows ürünü olan SQL Server Veritabanı için kullanılan isimdir. Eğer SQL’in ne olduğunu, nasıl kullanıldığını öğrenmek veya hatırlamak isterseniz Mustafa Özkan Bey’in https://www.datasciencearth.com/sql-nedir-dml-ddl-dcl-dql-komutlari/ yazısına göz atabilirsiniz. SQL Server’da farklı veri tipleri(sayısal,metinsel,tarih vb.) için kullanılan pek çok fonksiyon yer almaktadır. En çok kullanılan veri tiplerinden birisi olan String veri tipi için de sorgularımızı kolaylaştıran fonksiyonlar vardır. Şimdi birlikte SQL Server’da yer alan String (Metinsel) fonksiyonları inceleyeceğiz.
SUBSTRING
Substring fonksiyonunu metinsel verinin belirtiğimiz noktadan belirttiğimiz uzunlukta kısmını döndürür. Fonksiyonu daha iyi anlamak için parametrelerini inceleyip, örnek sorgu çalıştıralım.
Substring(Veri Tipi, Başlangıç, Uzunluk)
Substring(‘Zuhal’, 3, 2) fonksiyonu ‘al’ çıktısını verecektir.
Bir örnek ile fonksiyonu inceleyelim.
1 |
SELECT name FROM dbo.teams; |
1 |
SELECT SUBSTRING(name,2,2) FROM dbo.teams; |
LEFT
LEFT fonksiyonu metinsel verilerin baş kısmından yani sol kısmından başlayıp belirtilen uzunluktaki kısmını döndürür.
LEFT(Metinsel Veri,Karakter Sayısı)
LEFT(‘Zuhal’, 3) fonksiyonu ‘zuh’ çıktısı verecektir.
1 |
SELECT teamID FROM dbo.teams; |
1 |
SELECT LEFT(teamID,2) FROM dbo.teams; |
RIGHT
RIGHT fonksiyonu metinsel verilerin son kısmından yani sağ kısmından başlayıp verinin belirtilen uzunluktaki kısmını döndürür.
RIGHT(Metinsel Veri,Karakter Sayısı)
RIGHT(‘Zuhal’, 3) fonksiyonu ‘hal’ çıktısı verecektir.
1 |
SELECT schoolCity FROM dbo.schools; |
1 |
SELECT RIGHT(schoolCity,2) FROM dbo.schools; |
LEN
LEN fonksiyonu metinsel verinin uzunluğu çıktısını verir. Aradaki ve baştaki boşlukları da uzunluk olarak saymaktadır ancak verinin en sonunda yer alan boşlukları saymamaktadır.
LEN(metinsel veri)
LEN(‘Zuhal’) 5 çıktısını verirken LEN(‘Zu hal’) 7 çıktısını verecektir.
1 |
SELECT schoolName FROM dbo.schools; |
1 |
SELECT LEN(schoolName) FROM dbo.schools; |
DATALENGTH
DATALENGTH fonksiyonu LEN fonksiyonu ile aynı işlevi yapar. Ancak ufak bir fark vardır aralarında. DATALENGTH fonksiyonu verinin başında ve sonunda yer alan boşlukları da saymaktadır.
DATALENGTH(metinsel veri)
DATALENGTH(‘ Zuhal ‘) 10 çıktısını verecektir.
Fonksiyonların arasındaki farkı anlamak için örneğe bakalım.
1 2 3 |
SELECT LEN(' Hayat ' ); SELECT DATALENGTH(' Hayat ') ; |

REPLACE fonksiyonu metinsel verilerde değişiklik yapma olanağını sağlar. Mevcut veride yer alan bir harf,bir kelime yerine istediğimiz yeni harf veya kelimeyi yazdırabiliriz.
REPLACE(metinsel veri, değiştirilmek istenilen veri, yeni veri)
REPLACE( ‘Nefes Al’, ‘Al’, ‘Ver’) çıktısı ‘Nefes Ver’ şeklinde olacaktır.
1 2 3 |
DECLARE @ifade CHAR(10) SET @ifade='Nefes Al' SELECT REPLACE(@ifade, 'Al','Ver'); |
REPLICATE
REPLICATE fonksiyonu metinsel verileri tekrarlı şekilde yazmamızı sağlıyor. Tekrarlar aynı satır içinde gerçekleşiyor.
REPLICATE(metinsel veri, tekrar sayısı)
REPLICATE(‘Ganbatte’,2) çıktısı ‘GanbatteGanbatte’ şeklinde olacaktır.
1 |
SELECT playerID FROM dbo.players WHERE playerID IS NOT NULL; |

1 |
SELECT REPLICATE(playerID, 3) FROM dbo.players WHERE playerID IS NOT NULL; |

UPPER-LOWER
UPPER fonksiyonu metinsel verideki harfleri büyük harfe dönüştürürken LOWER fonksiyonu küçük harfe dönüştürmektedir.
1 |
SELECT LOWER(playerID) FROM dbo.players WHERE playerID IS NOT NULL; |
1 |
SELECT UPPER(playerID) FROM dbo.players WHERE playerID IS NOT NULL; |
RTRIM-LTRIM
RTRIM fonksiyonu metinsel verilerin sonundaki boşlukları silerken, LTRIM fonksiyonu verinin başındaki boşlukları siler.
1 2 3 4 |
DECLARE @ifade CHAR(10) SET @ifade='Nefes Al ' SELECT DATALENGTH(@ifade); --Boşlukları sayar SELECT DATALENGTH(RTRIM(@ifade)); --Boşlukların silinmesi |
STUFF
STUFF fonksiyonu REPLACE fonksiyonuna benzer işlemi yapar. REPLACE fonksiyonundan farklı olarak değiştirmek istediğimiz verinin başlangıç noktasını ve uzunluğunu belirtebiliyoruz.
STUFF(metinsel veri, başlangıç, uzunluk, yeni veri)
STUFF(‘Ukulala çalmak eğlencelidir.’, 4,4,’lele’) çıktısı ‘Ukulele çalmak eğlencelidir.’ şeklindedir.
1 |
SELECT STUFF('Ukulala çalmak eğlencelidir.', 4,4,'lele'); |
Yazımızda bazı STRING fonksiyonlarını inceledik. SQL Server’da kullanılan daha fazla string fonksiyonu yer almaktadır. İhtiyacımıza uygun fonksiyonu inceleyip sorgularımızda kullanabiliriz. Bir başka yazıda görüşmek üzere.
Soru ve önerileriniz için zuhal@datasciencearth.com adresine mail atabilirsiniz.