Respuestas:
CHARINDEX () busca una subcadena dentro de una cadena más grande y devuelve la posición de la coincidencia, o 0 si no se encuentra ninguna coincidencia
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Edite o de daniels answer, si desea encontrar una palabra (y no subcomponentes de palabras), su llamada CHARINDEX se vería así:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Agregue más REEMPLAZO recursivo () para cualquier otra puntuación que pueda ocurrir
REPLACE
llama a sí mismo; "anidado" es cuando el resultado de una llamada de función se pasa inmediatamente a otra función.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
y select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. (En intercalaciones, CS
significa mayúsculas y minúsculas y estoy seguro de que puede hacer ejercicio CI
).
Puede usar comodines en el predicado (después de IF, WHERE u ON):
@mainstring LIKE '%' + @substring + '%'
o en este caso específico
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Coloque los espacios en la cadena entre comillas si está buscando la palabra completa, o déjelos fuera si ME puede ser parte de una palabra más grande).
N
si su columna es una nvarchar
, de lo contrario obtendrá conversiones por fila)