Bu bölümde öğrenceğimiz birçok fonksiyon kombinasyonunu Excel'de, Python ve R gibi programlama dillerinde de yapabiliriz. Fakat veriler 1 milyon satırdan daha fazla ise Excel işimizi görmeyecektir. Ayrıca doğrudan kaynak üzerinde veri düzenleme işlemi yapacağımız için Python ve R programlama dillerinden çok daha etkili olacaktır.
Person.EmailAddress tablomuzu açalım ve sadece mail adresleri olacak şekilde tüm tabloyu sorgulatalım.
Mail adresleri @ (et) işaretinden sonra sabit bir şekilde "adventure-works.com" şekilde yazmaktadır. Amacımız @ (et) işaretinden önceki "aaron1, aaron2" şeklinde giden kullanıcı adlarını (username'leri) listelemek. "adventure-works.com" adres sonu 20 karakter uzunluğuna sahip. Bunu aklımızda tutalım.
[Username Length] = LEN(EmailAddress)kodları ile mail adreslerinin kaç karakterden oluştuğunu Username Lenght adlı değişkende gösterebiliriz.
Username = LEFT(EmailAddress, LEN(EmailAddress) - 20)kodları ile Username adlı yeni bir değişken tanımlayıp LEFT() fonksiyonu ile mail adreslerinin uzunluğundan 20'yi çıkardığımıda tüm kullanıcı adlarına (username'lere) ulaşabiliriz.
Bu şekilde hem LEFT hem de LEN fonskiyonlarını birlikte kullanıp farklı değişkenler türetebiliriz.
Şimdi [HumanResources].[Employee] tablosunu açalım ve sadece [NationalIDNumber] değişkeni olacak şekilde tüm kayıtları listeleyelim.
Kimlik numaraları en fazla 9 haneden oluşmaktadır. Amacımız 10 haneden küçük numaraların başına 0 (sıfır) koymak.
İlk olarak Length adlı yeni bir değişken olarak tüm kimlik numaralarının uzunluğunu buluyoruz.
New ID yeni bir değişken oluşturup 9 sıfırdan oluşan '000000000' karakterlerini kimlik numaraları ile birleştirdiğimizde karşımıza bu şekilde bir liste çıkacaktır.
Bu ifadeyi RIGHT fonksiyonu içinde belirleyip, sağdan itibaren 9 karakterin seçileceğini belirtirsek kimlik numaralarının başına 0 (sıfır) eklenecektir. Görüldüğü üzere RIGHT() fonksiyonu ile çok kolay.
SQL'de özel metin fonksiyonları bu şekilde. İşimize yarayacak önemli bilgiler. Bir sonraki bölümde zaman fonksiyonlarına değineceğiz.