Як уникнути знака відсотка в 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.