Beyza'nın Blogu

T-SQL’de String Fonksiyonlar

T-SQL bir Microsoft SQL Server’ın veritabanı programlama dilidir ve veritabanı dışında çıkmadan diğer programlama dillerinin hemen hemen yapabildiği her şeyi gerçekleştirme imkanı sunar.

Diğer programlama dilleriyle hemen hemen her şeyi gerçekleştirme imkanı sunuyor derken programlama dillerinin vazgeçilmez konusu olan fonksiyonları da destekliyor olması gerekmektedir. T-SQL kendi içerisinde hazır olarak bizlere birçok fonksiyon sunar.

Fonksiyon içerisine duruma göre bir ya da birden fazla parametre alan, bazen de hiç parametre almayan ve karşılığında yapılması gereken birçok işlemi kendi içerisinde gerçekleştiren yapılara denir. Programlama dillerinin temel ögelerinden biridir. Kurulum esnasında hazır gelmelerinin yanında kendimizde fonksiyon yazabiliriz.

T-SQL'deki hazır fonksiyonlar

String Fonksiyonları: Metinsel ifadeler üzerinde işlem yapmak için kullanılır.
Datetime Fonksiyonları: Tarih ve saat işlemleri için kullanılır.
Matematik Fonksiyonları: Matematiksel işlem, hesaplama yapmada kullanılır.
Tip Dönüşüm Fonksiyonları: Veri tipleri arasında dönüşümü yapar.
Sistem Fonksiyonları: Sistem ile ilgili bilgiler getirir.

STRING FONKSİYONLAR

Veritabanlarında daha çok string ifadeler üzerinde işlemler gerçekleştiririz. T-SQL içerisinde hazır olarak bazı string fonksiyonları bulunur. Oldukça zengin bir string fonksiyon kütüphanesi bulunmaktadır.

• ASCII      • CHAR      • CHARINDEX      • CONCAT      • CONCAT_WS      • DIFFERENCE      • FORMAT      • LEFT      • LEFT      • LEN      • LOWER      • LTRIM        • NCHAR      • PATINDEX      • QUOTENAME      • REPLACE      • REPLICATE      • REVERSE      • RIGHT      • RTRIM      • SOUNDEX      • SPACE         • STR                • STRING_AGG      • STRING_ESCAPE      • STRING_SPLIT      • STUFF      • SUBSTRING      • TRANSLATE      • TRIM      • UNICODE      • UPPER

ASCII Fonksiyonu

Bir karakterin ASCII değerini bize döndürür. Karakterlerin 0 – 255 arasındaki rakamsal değerini verir. Bu fonksiyonu verinin içinde kirli veri varsa yani istenmeyen, gözle görülmeyen karakterler varsa (enter,space gibi) bu karakterlerin ASCII değerini bulup temizlemek bunlara örnek olabilir.

SELECT ASCII(‘B’)         // 66
• SELECT ASCII(‘b’)         // 98
• SELECT ASCII(‘A’)         // 65
• SELECT ASCII(‘0’)        // 48
• SELECT ASCII(‘1’)         // 49
• SELECT ASCII(‘-‘)        // 46
• SELECT ASCII(‘ ‘)         // 32 (space = boşluk karakteri)
• SELECT ASCII(‘!’)          // 33
• SELECT ASCII(‘+’)        // 46
• SELECT ASCII(‘&’)        // 36
• SELECT ASCII(‘#’)       // 35
• SELECT ASCII(‘
‘)                                         // 13 (enter = alt satır karakteri)

CHAR Fonksiyonu

ASCII ile tam tersi bir işlem gerçekleştirir. ASCII karakterin yani 0 – 255 arasındaki değerlerin hangi karakter olduğunu buluruz.

SELECT CHAR (65)          // A

• SELECT CHAR (13)            // 

 
2.0
CONCAT Fonksiyonu

Birden fazla string ifadeyi birleştirmek için kullanılır.

SELECT CONCAT (‘EGE’,‘BÖLGESİ’)        // EGEBÖLGESİ
• SELECT CONCAT (‘EGE’,‘ ‘,’BÖLGESİ’)      // EGE BÖLGESİ

-> Bir diğer fonksiyonsuz yöntem:

• SELECT ‘EGE’ + ‘Bölgesi’                            // EGEBölgesi

LEFT/RIGHT Fonksiyonları

Sağdan/soldan belli bir sayıda karakter almak için kullanılır.

SELECT LEFT (‘A4 kağıt’,4)          // A4 k
SELECT RIGHT (‘A4 kağıt’,7)      // 4 kağıt

TRIM-LTRIM-RTRIM Fonksiyonları

Trim kelime anlamıyla bir şeyleri kırpmak anlamına gelmektedir. Buradaki kırpmaktan ve temizlemekten kasıt boşluk karakterinden kurtulmaktır.

TRIM -> Baştan ve sondan kırpma yapar. Ortadan kırpma yapmaz.
LTRIM -> Soldan kırpma yapar.
RTRIM -> Sağdan kırpma yapar.

SELECT TRIM (‘ A4 kağıt ‘)        // A4 kağıt
SELECT LTRIM (‘ A4 kağıt’)       // A4 kağıt
SELECT RTRIM (‘A4 kağıt ‘)      // A4 kağıt

LOWER, UPPER, REVERSE, REPLICATE Fonksiyonları

-> LOWER: Küçük harfe çevirme.
-> UPPER: Büyük harfe çevirme.
-> REVERSE: Tersine çevirme. (Özellikle performans gerektiren yerlerde kullanılır.)
-> REPLICATE: Belirlediğimiz sayıda string ifadeyi tekrar ettiren fonksiyon.

SELECT LOWER(‘EGE BÖLGESİ’)        // ege bölgesi
SELECT UPPER (‘ A4 kağıt’)               // A4 KAĞIT
SELECT REVERSE (‘Ege Bölgesi’)     // iseglöB egE
SELECT REPLICATE (‘Ege ‘,4)            // Ege Ege Ege Ege

* LOWER ve UPPER’da eğer ingilizce bir kelime girdiğimizde uygun karakter değişimi yazmayıp aynı karakterin büyük ya da küçük halini yazacaktır. Bu durumla karşılaşmak istemiyorsanız kurulum aşamasında gerekli yapılandırmaları gerçekleştirebilirsiniz.

 

6

-> REPLICATE fonksiyonu akıllı kod vb. oluşturmada kullanılır. Otomatik artan bir kod örneği yapalım.
URUN0001, URUN0002,… şeklinde artarak gitmeli

SELECT ‘URUN’+’19’                   // URUN19
SELECT ‘URUN’+‘000’+’19’        // URUN00019 -> Statik olarak 000 ekledik.

Fonksiyon ile bu sonuca ulaşmak için:

SELECT ‘URUN’+’REPLICATE(‘0′,3)’+’19’                                             // URUN00019

Sayı arttıkça 0’ların mantıksal bir şekilde azalması için:

SELECT ‘URUN’+ REPLICATE(‘0’,5 – LEN(‘156’)) + ‘156’                     // URUN00156

6.1
REPLACE Fonksiyonu

Bir string ifade içerisinde aradığımız ifadeyi başka bir string ifade ile değiştirmede kullanılır. 3 adet parametresi vardır. Özellikle kirli veriyi temizlemede kullanılır.
REPLACE (‘Mevcut string ifade’,’Aradığımız ifade’,’Değişirmek istediğimiz yeni ifade’)
                                   1                                    2                                           3


SELECT REPLACE (‘T-SQL bir veritabanı programlama dilidir’, ‘T-SQL’, ‘Transact SQL’)              // Transact SQL bir veritabanı programlama dilidir

7
SUBSTRING Fonksiyonu

Bir string ifadenin içerisinde belli bir başlangıç noktasından belli bir uzunluktaki ifadeyi almamız için gereken fonksiyondur. String parse işlemlerinde yoğun olarak kullanılır.

• SELECT SUBSTRING (‘Okul defteri kareli.’, 1,9)            // Okul deft
• SELECT SUBSTRING (‘Okul defteri kareli.’, 4,12)         // l defteri ka

CHARINDEX Fonksiyonu

Bir string ifade içerisinde aranan ifadenin nerede olduğu bilgisini pozisyon olarak bize getirir. Ayrıca bu pozisyon bilgisine göre parçalama işlemleri yaparız.

• SELECT CHARINDEX (‘2022′,’SQL SERVER 2022’)             // 12 -> Satırda 12.sırada geldiğini ifade eder.

STRING_SPLIT Fonksiyonu

Sonuç olarak bize tablo olarak değer döner bu yüzden SELECT ile değil SELECT * FROM ile fonksiyonu çağırırız. String ifade içinde belirlediğimiz parametreye göre parçalama işlemi yapar.

• SELECT * FROM STRING_SPLIT (‘Bugün hava çok güzel.’,’ ‘)                    // Bugün
                                                                                                                                    hava
                                                                                                                                    çok
                                                                                                                                    güzel.

• SELECT * FROM STRING_SPLIT (‘Denizli-Aydın-Muğla’,’-‘)                         // Denizli
                                                                                                                                      Aydın
                                                                                                                                      Muğla

 

Scroll to Top