REPLACE ve STUFF Fonksiyonlari Nasil Kullanilir ve Farklari Nelerdir.
Replace Fonksiyonu:
Replace bir metin içinde geçen belirli bir paterne uyan tüm metin veya karakterleri, istenilen baska bir karakter veya metin ile degistirir.
Örnek :
select REPLACE('Tazilim','T','Y') -- Sonuç : Yazilim
Replace fonksiyonu büyük küçük harfe duyarli degildir. Yani t veya T Replace için ayni karakterdir.
Replace ile bir karakteri baska bir karakter ile degistirebildigimiz gibi, bir karakteri bir metin ile veya bir metni bir karakter veya baska bir metin ile degistirebiliriz.
Örnek:
select REPLACE('Yazilim','m','m Mutfagi') -- Sonuç: Yazilim Mutfagi Select REPLACE('Yazilim Mutfagi', 'Mutfagi','M') -- Sonuç: Yazilim M
Stuff Fonksiyonu:
Stuff replaceden farkli olarak verilen bir metin içinde belirli bir indexden baslayarak belirli bir karakter uzunluktaki kismi baska bir metin veya karakter ile degistirmek için kullanilir.
Örnek :
select STUFF('Yazilim Güzeldir',7,1,' Mutfagi') -- Sonuç: Yazili Mutfagi Güzeldir Select STUFF('abcdefg',2,3,'ghjkl') -- Sonuç: aghjklefg
Not:
Replace için :
- Eger replace fonksiyonunda kullanilan parametrelerden herhangi birisi nvarchar tipinde ise Replace nvarchar tipinde bir deger döndürür, Diger durumlarda varchar deger döndürür.
- Parametrelerden birisi NULL olursa dönüs degeride null olur.
- Eger degistirilecek metin varchar(max) veya nvarchar(max) tiplerinden birisi degil ise, replace sonucunda dönücek deger en fazla 8000 karakter olur ve fazlasi atilir. 8000 karakterden büyük bir metin döndürmek istiyorsaniz, metni varchar(max) veya nvarchar(max)’a cast edin.
Stuff için :
- Eger baslangiç indexi yada uzunluk için verilen deger negatif ise veya baslangiç indexi metin uzunlugundan büyük ise NULL döner.
- Eger baslangiç degeri 0 ise yine NULL bir deger döner.
Merhabalar,
Select REPLACE(‘Yazilim Mutfagi’, ‘Mutfagi’,’M’) komutu yerine
Select REPLACE(‘Yazilim Mutfagi’, ‘mutfagi’,’M’) yazdy?ymyzda çaly?myyor. Bu sorunu nasyl çözebiliriz. Kelimede Harf Duyarlyly?y sorunu ?