T-SQL'de yüzde işaretinden nasıl kaçarım?


188

Bu sorunun cevabı da var , ancak özellikle DB2'den bahsediyor.

Nasıl arayabilirim dize kullanarak LIKEzaten yüzde sahip olduğunu %, içinde sembolü? LIKEOperatör kullandığı %semboller joker belirtmek için.

Yanıtlar:


285

Parantez kullanın. % 75'i aramak için

WHERE MyCol LIKE '%75[%]%'

Bu ESCAPE'den daha basittir ve çoğu RDBMS için ortaktır.


2
Ayrıca, kullanıcı işlevi, birleştirme vb. gibi diğer yapılarda yüzde simgesinden kaçmak zorunda olmadığınızı unutmayın
Bron Davies


2
Çok da alt çizgi joker karakter kaçabilir: [_]. Öyleyse açık köşeli ayraçtan nasıl kaçıyorsunuz? Bunun gibi: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

ESCAPE yantümcesini kullanmak, MS'in beyin hasarlı alıntı mekanizmasından daha kolaydır.
Suncat2000

52

ESCAPEAnahtar kelimesini ile birlikte kullanabilirsiniz LIKE. İstediğiniz karakteri (örn. '!') %Dizedeki mevcut işaretlerin her birinin başına ekleyin ve ardından ESCAPE '!'sorgunun sonuna ekleyin (veya seçtiğiniz karakterinizi).

Örneğin:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Bu veritabanı 80% (joker karakter) değil, aramak için dizenin gerçek bir parçası olarak% 80 tedavi yapacak.

İçin MSDN Dokümanları LIKE



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.