una left hasta extraer ejemplos charindex caracteres caracter cadena buscar sql-server string tsql stored-procedures sql-server-2005

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.