SQL: вернуть записи, содержащие слово, где последняя буква - это что угодно, кроме K - PullRequest
1 голос
/ 05 апреля 2019

Предположим, у меня есть таблица, содержащая столбец с именем "Запрос". Я должен отобразить записи, где строка в этом столбце использовала noloc вместо nolock. Обратите внимание, что за noloc может следовать / предшествовать ) или пробел и т. Д. Мне просто нужны все записи, которые имеют что-либо до и после noloc, кроме nolock. Есть ли способ сделать это в SQL?

Я пытался:

select * from table1
where Query LIKE '%noloc%'

, но это включает запросы, содержащие nolock. Я пробовал варианты вышеуказанного, например, ставить пробел до и / или после %, но ни один из них не отвечает всем критериям.

Ответы [ 2 ]

5 голосов
/ 05 апреля 2019

Вы можете использовать оба условия в предложении where

select * from table1
where Query LIKE '%noloc%' and Query NOT LIKE '%nolock%'
3 голосов
/ 05 апреля 2019

Вы хотите что-нибудь + noloc + любой символ, кроме k + что-нибудь. Здесь:

select * from table1
where Query LIKE '%noloc[^k]%'
...