Función CHARINDEX
Devuelve la ubicación de la subcadena especificada dentro de una cadena.
Consulte Función POSITION y Función STRPOS para ver funciones similares.
Sintaxis
CHARINDEX( substring, string )
Argumentos
- subcadena
-
Subcadena que se va a buscar dentro de la cadena.
- string
-
La cadena o columna que se buscará.
Tipo de retorno
- INTEGER
-
La función CHARINDEX devuelve un valor
INTEGER
correspondiente a la posición de la subcadena (basado en uno, no basado en cero). La posición se basa en la cantidad de caracteres, no bytes, por lo que los caracteres multibyte se cuentan como caracteres simples. CHARINDEX devuelve0
si no se encuentra una subcadena dentro de la cadena.
Ejemplos
Para devolver la posición de la cadena fish
dentro de la palabra dog
, use el siguiente ejemplo.
SELECT CHARINDEX('fish', 'dog');
+-----------+ | charindex | +-----------+ | 0 | +-----------+
Para devolver la posición de la cadena fish
dentro de la palabra dogfish
, use el siguiente ejemplo.
SELECT CHARINDEX('fish', 'dogfish');
+-----------+ | charindex | +-----------+ | 4 | +-----------+
En el siguiente ejemplo, se utiliza la tabla SALES de la base de datos de ejemplo TICKIT. Para obtener más información, consulte Base de datos de muestra.
Para devolver la cantidad de transacciones de venta distintas con un parámetro de comisión que supere los 999 de la tabla SALES, use el siguiente ejemplo. Este comando cuenta las comisiones superiores a 999 comprobando si el decimal está a más de 4 lugares del principio del valor de la comisión.
SELECT DISTINCT CHARINDEX('.', commission), COUNT (CHARINDEX('.', commission)) FROM sales WHERE CHARINDEX('.', commission) > 4 GROUP BY CHARINDEX('.', commission) ORDER BY 1,2;
+-----------+-------+ | charindex | count | +-----------+-------+ | 5 | 629 | +-----------+-------+