MSSQL’de LIKE ifadesi benzemek anlamında kullanılır. Metinsel veya tarihsel bir alan içerisinde benzer ifadeleri aramak için kullanılır.
LIKE deyimi kullanırken aşağıda belirtilen joker karakterlerden yararlanılmaktadır.
% : 0 veya daha fazla karakter
_ : tek bir karakter
[ ]: belirtilen aralıktaki tek bir karakter
[^]:belirtilen aralıkta olmayan tek bir karakter
ADRES | |
1 2 3 | Çiçek Mah. Yeşil Cad. Menekşe Ap. No:12 d:5 Avcılar/İstanbul Kumru Mah. Değirmen sokak İlknur ap. No:56 d:7 Avcılar Karabağ Mah. İstiklal Cad. İlkadım Apartmanı No:2 d:15 Avcılar/İst … |
Örneğin birçok adresin düzensiz kayıt edildiği adres alanında AVCILAR ilçesinde bulunan adresleri listelemek istiyoruz. Veriler düzensiz yapıda olduğu için ve ilçe adları ayrı bir alanda tutulmadığı için aşağıdaki gibi arama yapamayız.
1 | SELECT * FROM ogrenci WHERE ilce='Avcılar'; |
Her adres birbirinden farklı uzunlukta olduğu için ilçe adından önce kaç karakter geleceği veya ilçe adı yazıldıktan sonra kaç karakter geleceği belli değildir. Bu şekilde belirsiz durumlarda 0 veya daha fazla karakteri temsil eden % karakteri kullanılır. Yani sorgu AVCILAR kelimesi geçen 1, 2 ve 3 numaralı adresleri getirir.
1 | SELECT * FROM ogrenci WHERE ilce LIKE '%Avcılar%'; |
Eğer sondaki % karakterini kullanılmazsa AVCILAR kelimesi ile biten yalnızca 2 numaralı adres listelenir.
1 | SELECT * FROM ogrenci WHERE ilce LIKE ’%Avcılar’; |
MSSQL LIKE Sorgu Örnekleri
LIKE sorgu örnekleri aşağıdaki öğrenci tablosu üzerinde örneklenmiştir.
- Öğrenci tablosunda adı A harfi ile başlayanları listeleyin.
- Öğrenci tablosunda adı içerisinde A harfi geçen kişileri listeleyin.
- Öğrenci tablosunda ilk harfi ‘a, b, c, d’ harflerinden birini içeren öğrencileri listeleyin.
- Öğrenci tablosunda adı ‘f’ harfi ile başlayan 2. harfi ‘e’ olmayan tüm isimleri listeleyin.
MSSQL LIKE Soru ve Cevapları
- Öğrenci tablosunda adı A harfi ile başlayanları listeleyin.1SELECT * FROM ogrenci WHERE ogrenci_ad LIKE 'a%';
- Öğrenci tablosunda adı içerisinde A harfi geçen kişileri listeleyin.1SELECT * FROM ogrenci WHERE ogrenci_ad LIKE '%a%';
- Öğrenci tablosunda ilk harfi ‘a, b, c, d’ harflerinden birini içeren öğrencileri listeleyin.1SELECT * FROM ogrenci WHERE ogrenci_ad LIKE '[abcd]%';
veya1SELECT * FROM ogrenci WHERE ogrenci_ad LIKE '[a-d]%'; - Öğrenci tablosunda adı ‘f’ harfi ile başlayan 2. harfi ‘e’ olmayan tüm isimleri listeleyin.1SELECT ogrenci_ad FROM ogrenci WHERE ogrenci_ad LIKE 'f[^e]%';