ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Resimler Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

SQL Server

SQL Server 2016 STRING_SPLIT

SQL Server 2016 yeniliklerinden bahsederken özellikle String_Split fonksiyonu için tek bir makaleyi yapmayı uygun gördüm. Veri tabanı yöneticilerinin sıklıkla karşılaştığı virgülle ayrılmış dosyaları içe aktarma veya belirli sütunlarda bulunan virgülle ayrılmış verileri süzme, ekleme, aktarma işlemleri DBA lerin fazlaca zamanını almaktadır. Hatta DBA’lerin değil yazılım uzmanlarının da belirli noktalarda ciddi zamanlarını almaktadır.

SQL Server 2016 için uzun zamandır feedbacklerde bulunan ve ürün grubu tarafından geliştirilen String_Split duyuruldu ve basitçe iki adet parametre alacak şekilde tasarlandı

STRING_SPLIT ( string , separator )


String_Split bir tablonun tek bir sütünunun döndürür ve döndürülen sütünün adı istenilen değer olarak dönmektedir. Dönüş değernin öntanımla veri tipi varchar dır. Verilen dizi yani giriş değerine göre de dönüş veri tipi değişmektedir. Eğer siz veri olarak nvarchar veya nchar olarak bir giriş değeri verdi iseniz bu size nvarchar olarak çıktı verecektir. Dönen değer uzunluğu ise giriş dizesi uzunluğu ile aynı olacaktır.

String Split Veritabanı uyumluluğu


Öncelikle STRING_SPLIT fonksiyonunu kullanmak için veri tabanı uyumluluk düzeyinizin 130 olması gerekmektedir .

clip_image001

STS - 1

Yukarıdaki sorguyu çalıştırdığınızda eğer SQL Server 2016 aşağısında bir sürümde iseniz aşağıdaki gibi bir hata alacaksınız.

clip_image002

STS - 2

Bu durumda eğer SQL Server yükseltme işlemi yaparsanız otomatik olarak String_Split fonksiyonu kullanılabilir durumda olacaktır. Veri tabanı uyumluluk düzeyi için aşağıdaki gibi bir sorgu yazarak veri tabanımızı 130 uyumluluk değerine çekebiliriz.

clip_image004

STS - 3

Ardından hemen önce çalıştırdığımız string_split fonksiyonunu tekrar çalıştırabiliriz.

clip_image006

STS - 4

 

STRING_SPLIT Where ve Order By Kullanımı

String_Split fonksiyonu diğer Transact fonksiyonlar gibi Where ve Order By yan cümleleri ile filtrelenebilir ve sorgulanabilir. Örnek olarak Sıralama için aşağıdaki komutu çalıştırabilirsiniz.

clip_image008

STS -5

clip_image010

STS - 6

 

STRING_SPLIT Parametre olarak kullanımı

Daha önceden belirttiğimiz gibi, seperatör tek karakter olarak ayırıcı fonksiyon tarafından kullanılan bir özelliktir.

clip_image012

STS - 7

Bu yüzden yukarıdaki gibi bir sorgu çalıştırdığınızda bize her zaman için ncarh(1),varchar(1), nvarchar(1) veri türlerinin tek bir karakteri olduğunu söyler.

Bunun yerine her zaman tek karakter olarak tanımlarsanız tanımlı parametre olarak da separatör değeri ile String_Split fonksiyonunu sorunsuz olarak kullanabilirsiniz.

clip_image013

STS - 8

STRING_SPLIT Unicode karakter Kullanımı

Nchar veya Nvarchar olarak tanımladığınız verilerde unicode karakterler içinde sorgu yapabilir ve ayrıştırabilirsiniz

clip_image015

STS - 9

NULL Değeri ile STRING_SPLIT Kullanımı

String_split fonksiyonunda seperatör değeri null olarak kullanılamaz. Eğer herhangi bir şekilde null olarak tanımlama yaparsanız aşağıdaki gibi bir sonuç ile karşılaşırsınız.

clip_image017

STS - 10

Bunun tam tersi olarak değerleriniz null olursa hata almadan çalışmaya devam edebilirsiniz tabi doğal olarak verileriniz boş gelecektir.

clip_image019

STS - 11

NULL seçeneğine bir diğer alternatif senaryo ise eğer veri dizenizden herhangi bir öğe yok yada boş ise çıktı sonucunda onu yeni bir row olarak göreceksiniz. Bunun null değer check etme işlemini manuel olarak yada transact içinde cursor vasıtası ile yapabilirsiniz.

clip_image021

STS - 12

 

Sonuç olarak String_Split fonksiyonunu herhangi bir user defined fonksiyon olarak SQL Server 2016 veri tabanızı dosyaıza eklemeniz halinde (örnek olarak ) ;

clip_image023.

STS - 13

Veri tabanlarınızda bir den fazla yerde ayrıştırma işlemi yapıyorsanız sizlerin daha kolay kullanımı ve daha hızlı bir şekilde verilerinizi düzenleme kabiliyeti kazanmanıza olanak verir.

Sizlerde fonksiyonlarınızı yeni gelen özellikler ile veri tabanlarınıza eklemeniz halinde kullanımı kolay bir yönetim elde edeceksiniz.

 

 

 

Tarih : 04 Haziran 2017 Pazar 21:25 Yayınlayan: Yavuz Filizlibay

Yorumlar

Henuz Yorum Yok
Kimliksiz yorumlar seçilemez kılınmış durumdadır.

Yazar: Yavuz Filizlibay

http://www.yavuzfilizlibay.com
 

Hızlı aktarma

Etiketler