Проверьте, не содержит ли строка другую строку - PullRequest
56 голосов
/ 07 августа 2009

Как в T-SQL проверить, не содержит ли строка другую строку?

У меня есть nvarchar, который может быть "Апельсиновыми яблоками".

Я хотел бы сделать обновление, где, например, столбец не содержит "Яблоки".

Как это можно сделать?

Ответы [ 4 ]

81 голосов
/ 07 августа 2009
WHERE NOT (someColumn LIKE '%Apples%')
24 голосов
/ 07 августа 2009

Или же вы можете использовать это:

WHERE CHARINDEX(N'Apples', someColumn) = 0

Не уверен, какой из них работает лучше - ты должен проверить это! : -)

Марк

ОБНОВЛЕНИЕ: производительность кажется примерно такой же, как и у другого решения (ГДЕ someColumn NOT LIKE '% Apples%') - так что это действительно вопрос ваших личных предпочтений.

10 голосов
/ 07 августа 2009

Используйте это как ваше условие ГДЕ

WHERE CHARINDEX('Apples', column) = 0 
7 голосов
/ 30 августа 2012

Ответы, которые вы получили, должны сравниваться со статическим текстом. Если вы хотите сравнить с другим столбцом (скажем, вы объединяете две таблицы и хотите найти таблицы, в которых столбец из одной таблицы является частью столбца из другой таблицы), вы можете сделать это

WHERE NOT (someColumn LIKE '%' || someOtherColumn || '%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...