SQL Server’da Özel Karakter Aratmak
Herkese merhaba,
Bu yazıda sizlere SQL Server’da özel karakter aratmak hakkında bilgi vereceğim.
SQL Server’da sorgularımızda kullandığımız like ifadesinde _ ve % karakterlerini wildcard olarak değil de sorgu karakteri olarak kullanmak istediğimizde escape karakteri olarak bunları belirtmeliyiz aksi durumda istediğimiz sonucu alamayız.
Konuyu anlamak adına aşağıdaki kodları inceleyelim.
--Tablonun oluşturulması
CREATE TABLE YaziTablosu
(
id INT PRIMARY KEY IDENTITY(1, 1),
Yazi NVARCHAR(100)
);
--Tabloya veri eklenmesi
INSERT INTO dbo.YaziTablosu
(
Yazi
)
VALUES
(N'test1'),
(N'test_1'),
(N'test%1'),
(N'test2'),
(N'test_2'),
(N'test1');
--Select sorgusu (Escape kullanmadan)
SELECT *
FROM YaziTablosu
WHERE Yazi LIKE '%_%';
Tabloyu oluşturup Yazi sütunu içerisinde alt çizgi olan satırları Escape karakter kullanmadan getir dediğimiz zaman aşağıdaki sonucu göreceksiniz.
Gördüğünüz üzere eklediğim tüm satırlar geldi. Kısaca istediğim sonucu alamadım.
Şimdi aşağıdaki gibi yazıp çalıştıralım.
--Select sorgusu (Escape kullanınca)
SELECT *
FROM YaziTablosu
WHERE Yazi LIKE '%\_%' ESCAPE '\';
SELECT *
FROM YaziTablosu
WHERE Yazi LIKE '%=%%' ESCAPE '=';
Sorguyu çalıştırınca aşağıdaki sonucu göreceksiniz. Ben ilk sorguyu seçip F5 tuşu ile çalıştırıyorum.
Görüldüğü üzere alt çizgi olan satırlar gelmiş oldu.
Kullanım mantığına gelecek olursak aramak istediğimiz karakter öncesi slash işareti ya da hangi işareti escape karakter olarak belirledi isek o karakteri koymamız ve sonrasında ESCAPE diyerek karakteri belirtmemiz.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.