Як уникнути знака відсотка в T-SQL?


Відповіді:


285

Використовуйте дужки. Тож шукати 75%

WHERE MyCol LIKE '%75[%]%'

Це простіше, ніж ESCAPE і загальноприйняте для більшості RDBMS.


2
також зауважте, що вам не потрібно уникати символу відсотка в інших конструкціях, таких як функція користувача, конкатенація тощо.
Bron Davies


2
Ви можете уникнути також підкреслення символу підстановки теж: [_]. Як тоді уникнути відкритої квадратної дужки? Як це: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth,

Використання пункту ESCAPE зрозуміти простіше, ніж механізм цитування, пошкоджений мовою MS.
Suncat2000

52

Ви можете використовувати ESCAPEключове слово за допомогою LIKE. Просто додайте потрібний символ (наприклад, "!") До кожного з існуючих %знаків у рядку, а потім додайте ESCAPE '!'(або ваш обраний символ) до кінця запиту.

Наприклад:

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

Це зробить базу даних трактуванням 80% як фактичну частину рядка для пошуку, а не 80 (підстановочний знак).

Документи MSDN для LIKE



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.