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.

SQL Server’da Özel Karakter Aratmak

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.

SQL Server’da Özel Karakter Aratmak

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.

847 Kez Okundu