T-SQL Upper ve Lower Fonksiyonları

T-SQL ile bir alanı büyük harfe çevirmek istediğimizde varsayılan olarak UPPER fonksiyonu İngilizce diline göre çalışır ve sonucu buna göre getirir. Fakat bazı durumlarda bu fonksiyonun sonuçları Türkçe alfabeye göre getirmesini istediğimiz durumlar olabilir.

Aşağıdaki örnekte “Collate” ifadesini kullanarak sonucu nasıl Türkçe getireceğimizin bir örneğini bulabilirsiniz.
Upper fonksiyonunu Collate ifadesi olmadan kullanırsak “Sinan Bilgin” “SINAN BILGIN” olarak büyük harfe çevrilirken UPPER fonksiyonuna Collate Turkish_CI_AS parametresi eklediğimiz zaman sonuç Türkçe olarak büyük harfe çevrilerek yani “SİNAN BİLGİN” olarak karşımıza geliyor.

Aynı sorgunun AdvantureWorks veritabanı üzerinde uygulanışını içeren örneği aşağıda bulabilirsiniz.

select BusinessEntityID, FirstName, LastName, UPPER(FirstName) “Buyukharf Adi”, UPPER(LastName) “Buyukharf Soydi”,

UPPER(FirstName Collate Turkish_CI_AS) “Turkce Buyukharf Adi”, UPPER(LastName Collate Turkish_CI_AS) “Turkce Buyukharf Soyadi”

from [AdventureWorks2012].[Person].[Person]

Türkçe olarak yazılmış bir ifadeyi T-SQL LOWER fonksiyonu ile küçük harfe çevirmek istediğimizde ise Collate ifadesi kullanmamıza gerek olmuyor. Aşağıda bulunan örneği incelerseniz LOWER fonsiyonunun istediğimiz sonucu döndürdüğünü görebilirsiniz.

select LOWER(‘SİNAN’) “Kucuk Harf Adi”, LOWER(‘BİLGİN’) “Kucuk Harf Soyadi”

Özetleyecek olursak Collate ifadesi kullanarak bazı harfleri Türkçe olarak büyük yada küçük harfe çevirebiliriz, bu şekilde dönüştürmek istemediğimiz karakterleri içeren kayıtları ise NOT LIKE ile eleyerek istediğimiz sonuçları alabiliriz.

Örneğin içinde “ü” harfi geçen kayıtları büyük harfe çevirmek istemiyorsak WHERE Lastname NOT LIKE ‘%ü%’ ile filtreleyebiliriz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir