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

Comentarios recientes