Sql Server

Sql Server substring Fonksiyonu

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Sql Server’da substring() fonksiyonunu anlatacağım. Hadi başlayalım !

substring() fonksiyonu metinsel bir veri içerisinden parça almayı sağlıyor ve C#, Javascript, Python, PHP gibi günümüzde popüler olan programlama dillerinin birçoğunda var olan bir fonksiyon ve hepsinde de Sql Server’dakinin birebir aynısı görev görüyor. Bu fonksiyon metinsel tipte bir tane ve integer tipte 2 tane olmak üzere 3 tane parametre alıyor. Birinci parametrede verdiğimiz metinsel ifadenin ikinci parametrede verdiğimiz index numaralı karakterinden sonra üçüncü parametre kadar parçasını alıp geri döndürüyor ve bu döndürdüğü veri de metinsel oluyor. Yani örneğin şöyle bir örnek yapalım;

select substring('Softwaresup.net', 1, 3);

Bu sorguyu çalıştırdığınızda şöyle bir çıktı göreceksiniz;

sql server substring fonksiyonu 1
Sql Sorgusu Çıktısı

Ayrıca bu fonksiyonu diğer tüm fonksiyonlar gibi select, insert, delete ve update sorgularınızda kullanabilirsiniz. select sorgusunda hem sorgu içerisinde hemde where ile filtrelemede, delete sorgusunda where ile filtrelemede, insert sorgusunda veri olarak, update sorgusunda ise hem where filtresinde hemde güncellenecek veri olarak kullanabilirsiniz. Örneğin bir tablonuz ve bu tablo içerisinde metinsel tipte (char, varchar, text gibi) bir sütununuz var. Bu sütuna en fazla 20 karakter eklenebiliyor olsun fakat bazı kötü niyetli kişiler 30 karakter veri gönderdi. Böylesi bir durumda Sql Server hata verir fakat gelen verinin substring() fonksiyonuyla ilk 20 karakterini alarak tabloya eklemesini yapabilirsiniz. Veya ilk 10 karakteri belli bir şey olan verileri silmek istiyorsanız da substring() fonksiyonunu kullanabilirsiniz. Yada bir form üzerinden kullanıcı filtreleme yapıyor diyelim. İlk x karakteri kullanıcının girdiği ifade olan verileri getirmek için de substring() fonksiyonunu kullanabilirsiniz. Bu ve bunun gibi daha bir çok konuda substring() fonksiyonunu kullanabilirsiniz.

Örneğin kitaplar adında bir tablo ve bu tabloda da varchar tipte kitapAdi sütunu olsun. Bu tablo üzerinde substring() fonksiyonu örnekleri yapalım;

select kitapAdi from kitaplar where substring(kitapAdi, 1, 8) = 'Sefiller';
select substring(kitapAdi, 0, 10) from kitaplar;
delete from kitaplar where substring(kitapAdi, 1, 8) = 'Sefiller';
declare @kitapAdi varchar(20);
insert into kitaplar(kitapAdi) values(substring(@kitapAdi, 1, 20));
update kitaplar set kitapAdi=substring(@kitapAdi, 1, 20);

substring() fonksiyonunda dikkat etmemiz gereken ikinci parametrede index numarası istiyor ya, bu index numarası günümüz programlama dillerinden farklı olarak sıfır değil 1’den başlıyor. İkinci parametrede negatif bir sayı yada sıfır vermeniz durumunda pozitife geçene kadar boş karakter gelecektir. Yani 5 karakterli bir veriden substring(veri, -1, 3) şeklinde bir Sql komutunda verinin ilk karakterini size getirir. substring(veri, -5, 5) şeklinde bir sorguda boş bir ifade geriye döndürür. substring(veri, 0, 5) şeklinde bir sorguda ise ilk 4 karakteri getirir. Buna dikkat etmenizde fayda var 🙂 Ayrıca üçüncü parametrenin de sıfır yada pozitif olması gerekmekte. Üçüncü parametrede sıfır verirseniz substring(veri, 0, 1) ile aynı işlevi yapar ve boş bir yanıt döndürür. Son olarak iki yada üçüncü parametrede ondalıklı bir değer verirsenizde verdiğiniz değerin tam sayı kısmını dikkate alır. Yani 1.5, 1.4, 1.9, 1.999 girerseniz 1 olarak algılar ve 1’e göre işlem yapar, ondalık kısmını göz ardı eder.

Ayrıca substring() fonksiyonu diğer tüm fonksiyonlarda olduğu gibi fonksiyon yada stored procedureler içerisinde de kullanılabiliyor. Dışarıdan alınan bir veri substring() fonksiyonundan geçirilerek istenilen uzunluğu alınabilir, bir sayı içerisinden istenilen karakteri alınabilir gibi birçok işlem yapılabilir. Fonksiyon ve stored procedureler için ilgili yazılarımızı inceleyebilirsiniz.

Evet Sql Server substring() fonksiyonu bu şekilde idi, tüm yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

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

Başa dön tuşu