SQL Replace ve Stuff Fonksiyonları

Merhaba arkadaşlar,

Bu dersimizde replace ve stuff fonksiyonun nasıl kullanıldığı, farklarının neler olduğunu anlatacağız.

Dilerseniz öncelikle replace ve stuff fonksiyonunu açıklayayım.

REPLACE FONKSİYONU

Sql ile veri sorgularken çoğunlukla istemediğimiz karakterler veya özel karakterler içeren veriler oluyor . Bu sebepten ötürü verileri sorgulamak için ek kodlar yazmak gerekebiliyor bunu ortadan kaldırmanın en kolay yolu Replace() fonksiyonudur.

STUFF FONKSİYONU

Stuff fonksiyonu, bir ifadenin belli bir yerini başka bir ifade ile değiştirmek için kullanılır.

Kullanımı : Stuff(ifade,başlangıç indexi, karakter sayısı, yeni ifade) şeklindedir.

Replace bir metin içinde geçen belirli bir paterne uyan tüm metin veya karakterleri, istenilen başka bir karakter veya metin ile değiştirir. Örneğin;

1  SELECT REPLACE('Umre','U','E')
2  Sonuç : Emre

Replace ile bir karakteri başka bir karakter ile değiştirebildiğimiz gibi, bir karakteri bir metin ile veya bir metni bir karakter veya başka bir metin ile değiştirebiliriz. Örneğin;

1  REPLACE('Yazilim','m','m Mutfagi')
2  SONUÇ : Yazilim Mutfagi
3  SELECT REPLACE('Yazilim Mutfagi''Mutfagi','M')
4  SONUÇ : Yazilim M

Stuff replaceden farklı olarak verilen bir metin içinde belirli bir indexden başlayarak belirli bir karakter uzunluktaki kısmı başka bir metin veya karakter ile değiştirmek için kullanılır. Örneğin;

1  SELECT STUFF('Yazılım Teknoloji',7,1,' Donanım')
2  SONUÇ: Yazılım Donanım Teknoloji
3  SELECT STUFF('abcdefg',2,3,'ghjkl')
4  SONUÇ: aghjklefg

Not (Replace Fonksiyonu):

* Eğer replace fonksiyonunda kullanılan parametrelerden herhangi birisi nvarchar tipinde ise Replace nvarchar tipinde bir değer döndürür, Diğer durumlarda varchar değer döndürür.

* Parametrelerden birisi NULL olursa dönüş değeri de NULL olur.

* Eğer değiştirilecek metin varchar(max) veya nvarchar(max) tiplerinden birisi değil ise, replace sonucunda dönücek değer en fazla 8000 karakter olur ve fazlası atılır. 8000 karakterden büyük bir metin döndürmek istiyorsanız, metni varchar(max) veya nvarchar(max)’a cast edin.

Not (Stuff fonksiyonu):

* Eğer başlangıç indexi yada uzunluk için verilen değer negatif ise veya başlangıç indexi metin uzunluğundan büyük ise NULL döner.

* Eğer başlangıç değeri 0 ise yine NULL bir değer döner.

Bir cevap yazın

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