Replace Fonksiyonu Kullanım Örneği
REPLACE(ifade, değişecekifade, yeniifade)
Örnek 1: "Merhaba Serkan" cümlesindeki "Serkan" kelimesini "Ahmed" ile değiştirelim.
Örnek 1 (SQL Server)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed')
Örnek 1 (Oracle)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger FROM DUAL
Örnek 1 (PostgreSQL)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger
Örnek 1 (MySQL)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger
Örnek 1 (Sonuç)
Örnek 2: "12344521290" ifadesindeki "2" rakamlarını "6" ile değiştirelim.
Örnek 2 (SQL Server)
SELECT REPLACE('12344521290', '2', '6')
Örnek 2 (Oracle)
SELECT REPLACE('12344521290', '2', '6') Deger FROM DUAL
Örnek 2 (PostgreSQL)
SELECT REPLACE('12344521290', '2', '6') Deger
Örnek 2 (MySQL)
SELECT REPLACE('12344521290', '2', '6') Deger
Örnek 2 (Sonuç)
Örnek 3: "(0532) 123 45 67" ifadesindeki "(" ve ")" ifadelerini silelim.
Örnek 3 (SQL Server)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '')
Örnek 3 (Oracle)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger FROM DUAL
Örnek 3 (PostgreSQL)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger
Örnek 3 (MySQL)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger
Örnek 3 (Sonuç)
Alfabetik Karakterler Harici Olanları Silelim
Bu noktada aklımıza ilk gelen şey Regular Expression (Düzenli İfadeler) gelmektedir. Kısaca SQL tarafında nasıl kullanılacağına dair örneklerle ilerleyelim.Sadece Alfabetik Karakterler (SQL Server)
DECLARE @deger VARCHAR(100) = 'Bu Site 12 Yaşında'; DECLARE @desen VARCHAR(100) = '%[^a-zA-Z]%'; WHILE PATINDEX(@desen, @deger) > 0 BEGIN SELECT @deger = STUFF(@deger, PATINDEX(@desen, @deger), 1, ''); END SELECT 'Bu Site 12 Yaşında' AS 'Eski İfade', @deger AS 'Yeni İfade'
Sadece Alfabetik Karakterler (Oracle)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '') FROM DUAL;
Sadece Alfabetik Karakterler (PostgreSQL)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '', 'g')
Sadece Alfabetik Karakterler (MySQL)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '')
Bir tane değişken tanımladık. İçerisinde sayısal bir veri olacak şekilde. Daha sonra elimizde regex desenine uygun olacak şekilde sayısal verileri temizledik. Sonrasında ekrana eski ve yeni değerleri karşılaştırmalı bir şekilde yazdırmış olduk.
Sadece Alfabetik Karakterler (Sonuç)
Sayısal Veri Harici Olanları Silelim
Bir ifade içerisinde sadece sayısal (rakam) verilerini elde etmek için gereken deseni oluşturalım.Sadece Sayısal Karakterler (SQL Server)
DECLARE @deger VARCHAR(100) = 'SQL Dersleri 172835 defa izlenmiş'; DECLARE @desen VARCHAR(100) = '%[^0-9]%'; WHILE PATINDEX(@desen, @deger) > 0 BEGIN SELECT @deger = STUFF(@deger, PATINDEX(@desen, @deger), 1, ''); END SELECT 'SQL Dersleri 172835 defa izlenmiş' AS 'Eski İfade', @deger AS 'Yeni İfade'
Sadece Sayısal Karakterler (Oracle)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '') FROM DUAL;
Sadece Sayısal Karakterler (PostgreSQL)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '', 'g')
Sadece Sayısal Karakterler (MySQL)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '')
Replace örneğinin sonucunu görelim
Sadece Sayısal Karakterler (Sonuç)
Update İşleminde Replace Kullanımı
Peki bir tabloda Update (Güncelleme) işlemi yapılırken Replace işlemini nasıl kullanırız?Örneğini şu şekilde verelim. Verilerle dolu bir tablo ve bu tablonun bazı sütunlarında belirlenen kelimelerin başka kelimelerle güncellenmesi gerekiyor. Bu tip sütun güncelleme örneği için basit bir tablo oluşturup örneğimizi anlamaya çalışalım.
Tablo Oluşturalım
CREATE TABLE Haberler( id INT PRIMARY KEY NOT NULL IDENTITY(1,1), baslik VARCHAR(100) )
Oluşturmuş olduğumuz tabloya veriler ekleyelim.
Tablo Verileri
INSERT INTO Haberler (baslik) VALUES ('Av yasağı sonrası balık fiyatları ne oldu?'), ('Sanat dünyası üzgün'), ('Yağmur bulutları Adana üzerinde'), ('NASA, EXCITE teleskobunu fırlatmaya hazırlanıyor'), ('Yapay zeka eğitimleri devam ediyor'), ('Kitap severler Adana kitap fuarında buluştu'), ('Yerçekimi kadar önemli bir keşif')
Tablomuza verileri ekledik, özellikle yeşil ile belirtilmiş veriler var bunlarda Replace sonrası kelime değişikliğini göreceğiz.
Haberler Tablomuz
Şimdi ise Haberler tablosundaki baslik adlı sütun içerisinde Adana geçen kelimeleri İstanbul ile değiştirerek güncelleyelim.
Update İşleminde Replace Kullnımı
UPDATE Haberler SET baslik = REPLACE(baslik, 'Adana', 'İstanbul')
Update sorgusunun çalışması sonrası tablomuzdaki Adana kelimesi yerine İstanbul kelimesinin geldiğini görüyoruz.