SQL Server'da Özel Karakterli Satır Ara
Bugün bir programlama sorununu giderirken, özel bir sözdizimi kullanmadan,% veya _ gibi özel karakterler içeren dize sütunlar için LIKE aramasını kullanamayacağınızı fark ettim. Sorunun çözülmesi sadece birkaç dakika sürdü, ancak eğer yazarsanız sözdizimini hatırlamak her zaman daha kolay.
Yani evet, bu yazı tamamen benim yararım için. Umarım başkalarına da yardım eder.
“% 100” metnini içeren alanları bulmak istediğinizi varsayalım, bu yüzden bu sorguyu bir araya getirdiniz:
SELECT * tablename from NEREDE alan adı LIKE '% 100 %%'
İstediğiniz yerine, "% 100" içeren tüm satırları ve "% 100" içeren satırları alırsınız..
Buradaki sorun, SQL Server'ın yüzde işareti, alt çizgi ve köşeli parantezleri özel karakterler olarak kullanmasıdır. Onları kaçmadan LIKE sorgusunda düz karakter olarak kullanamazsın.
Köşeli Braketten Kaçış
SQL Server'a içerideki karakterin normal bir karakter olduğunu söylemek için% veya _ köşeli parantezleri çevreleyebilirsiniz..
SELECT * tablename from NEREDE alan adı LIKE '% 100 [%]%'
T-SQL ESCAPE Sözdizimi
Alternatif olarak, ESCAPE operatörünü sorgunuza ekleyebilir ve kaçmak istediğiniz değerden önce bir \ karakteri ekleyebilirsiniz..
SELECT * tablename from NEREDE alan adı LIKE '% 100 \ %%' ESCAPE '\'
Sorgunun ESCAPE '\' kısmı, SQL motoruna \ sonrasındaki karakteri bir joker karakter yerine değişmez bir karakter olarak yorumlamasını söyler..
Şahsen ikinci yöntemi başa çıkmanın daha kolay olduğunu düşünüyorum ve bir köşeli ayraçtan kaçmak için de kullanabilirsiniz..