Відповіді:
CHARINDEX () шукає підрядку у більшому рядку та повертає позицію збігу або 0, якщо не знайдено відповідності
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Редагувати або Daniels відповідь, якщо Ви бажаєте , щоб знайти слово (а не подкомпоненти слів), ваш CHARINDEX виклик буде виглядати наступним чином :
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Додайте рекурсивні дзвінки REPLACE () для будь-яких інших пунктуацій, які можуть виникнути
REPLACE
викликати себе; "вкладений" - це коли виклик функції негайно передається іншій функції.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
і select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. (У порівнянні CS
розшифровується поняття Case Sensitive, і я впевнений, що ви зможете розробитись CI
)
Ви можете просто використовувати підстановку в присудку (після IF, WHERE чи ON):
@mainstring LIKE '%' + @substring + '%'
або в цьому конкретному випадку
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Поставте пробіли у цитуваному рядку, якщо ви шукаєте ціле слово, або залиште їх, якщо МО може бути частиною більшого слова).
N
якщо ваш стовпець є nvarchar
, інакше ви отримаєте конверсії за рядками)