Jak mogę uniknąć znaku procentowego w T-SQL?


Odpowiedzi:


285

Użyj nawiasów. Więc szukać 75%

WHERE MyCol LIKE '%75[%]%'

Jest to prostsze niż ESCAPE i wspólne dla większości RDBMS.


2
również pamiętać, nie trzeba uciekać się symbol procentu w innych konstrukcjach, takich jak funkcja użytkownika, łączenie itd
Bron Davies


2
Można uciec również podkreślenia zbyt wieloznaczny: [_]. Jak zatem uciec od otwartego nawiasu kwadratowego? Tak: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

Korzystanie z klauzuli ESCAPE jest łatwiejsze do zrozumienia niż mechanizm cytowania uszkodzony przez MS.
Suncat2000

52

Możesz użyć ESCAPEsłowa kluczowego z LIKE. Po prostu wstaw żądany znak (np. „!”) Do każdego z istniejących %znaków w ciągu, a następnie dodaj ESCAPE '!'(lub swój znak) na końcu zapytania.

Na przykład:

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

Spowoduje to, że baza danych będzie traktować 80% jako rzeczywistą część ciągu do wyszukania, a nie 80 (symbol wieloznaczny).

Dokumenty MSDN dla LIKE



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.