Respostas:
CHARINDEX () procura uma substring dentro de uma string maior e retorna a posição da correspondência ou 0 se nenhuma correspondência for encontrada
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Edite ou a partir da resposta de daniels, se você deseja encontrar uma palavra (e não subcomponentes), sua chamada CHARINDEX se parecerá com:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Adicione mais chamadas REPLACE () recursivas para qualquer outra pontuação que possa ocorrer
REPLACE
chamado; "aninhado" é quando o resultado de uma chamada de função é passado imediatamente para outra função.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
e select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. (Em agrupamentos, CS
significa Case Sensitive e tenho certeza que você pode se exercitar CI
).
Você pode apenas usar curingas no predicado (depois de IF, WHERE ou ON):
@mainstring LIKE '%' + @substring + '%'
ou neste caso específico
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Coloque os espaços na cadeia de caracteres citada se estiver procurando a palavra inteira ou deixe-os de fora se ME puder fazer parte de uma palavra maior).
N
se sua coluna é um nvarchar
, caso contrário você obter conversões por-linha)