Encontrar cualquier ocurrencia de un caracter usando CHARINDEX

La función CHARINDEX tiene la función de devolvernos la posición inicial donde se encuentra un caracter o cadena de caracteres dada, y sus constructores son:

Para buscar desde el principio
CHARINDEX(caracter_a_buscar, cadena_donde_buscar)

Para buscar desde una posición específica
CHARINDEX(caracter_a_buscar, cadena_donde_buscar,posicion_inicial)

Veamos un ejemplo para encontrar la primera,segunda y tercera ocurrencia de los dos puntos (:)

--variables para el ejemplo
DECLARE @FIRST INT
DECLARE @SECOND INT
DECLARE @third INT
DECLARE @fourth INT
DECLARE @cadena VARCHAR(500)
 
--Esta es la cadena 
SET @cadena='PEPE:PECAS:PICA:PAPAS'
SET @FIRST= (SELECT CHARINDEX(':', @cadena))--Primero
SET @SECOND=(SELECT CHARINDEX(':', @cadena, CHARINDEX(':', @cadena)+1))--Segundo
SET @third= (SELECT CHARINDEX(':', @cadena, CHARINDEX(':', @cadena, CHARINDEX(':', @cadena)+1)+1))--Tercero
 
PRINT 'En la cadena: '+CHAR(13)+@cadena+CHAR(13)+
'El caracter ":" se encontró 3 veces, en las posiciones '
+CAST(@FIRST AS VARCHAR)+', '+CAST(@SECOND AS VARCHAR)+
' y '+CAST(@third AS VARCHAR)

Nos dará la siguiente salida:

En la cadena:
PEPE:PECAS:PICA:PAPAS
El caracter ":" se encontró 3 veces, en las posiciones 5, 11 y 16

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">