left - Compruebe si una cadena contiene una subcadena en SQL Server 2005, utilizando un procedimiento almacenado
sql substring hasta un caracter (4)
No dice qué tipo de SQL (es decir, qué base de datos), pero en Oracle puede usar instr () y en SQL Server puede usar SUBSTRING ()
Tengo una cadena, @mainString = ''CATCH ME IF YOU CAN''
. Quiero comprobar si la palabra ME
está dentro de @mainString
.
¿Cómo verifico si una cadena tiene una subcadena específica en SQL?
Solo puede usar comodines en el predicado (después de IF, WHERE o ON):
@mainstring LIKE ''%'' + @substring + ''%''
o en este caso específico
'' '' + @mainstring + '' '' LIKE ''% ME[., ]%''
(Ponga los espacios en la cadena citada si está buscando la palabra completa, o déjelos afuera si YO puede ser parte de una palabra más grande).
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 la respuesta de daniels, 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 llamadas REEMPLAZO () recursivas para cualquier otra puntuación que pueda ocurrir
DECLARE @str VARCHAR(255)
SET @str = ''this is @n $tring''
IF (@str LIKE ''%[^a-zA-Z0-9]%'')
PRINT ''have some ''''special'''' characters''
ELSE
PRINT ''have not ''''special'''' characters''
Que esto te ayude.