SQL

¿Cómo buscar una subcadena en una cadena en SQL Server con la función CHARINDEX?

Estrada Web Group
Administrador
¿Cómo buscar una subcadena en una cadena en SQL Server con la función CHARINDEX?

En este tutorial, aprenderá a usar la función CHARINDEX() de SQL Server para buscar una subcadena en una cadena.

Descripción general de la función CHARINDEX() de SQL Server

La función CHARINDEX() de SQL Server busca una subcadena dentro de una cadena a partir de una ubicación especificada. Devuelve la posición de la subcadena encontrada en la cadena buscada, o cero si no se encuentra la subcadena. La posición inicial devuelta se basa en 1, no en 0. Si lo que deseas es obtener una subcadena de una cadena se utiliza la función SUBSTRING().

A continuación, se muestra la sintaxis de la función CHARINDEX():

CHARINDEX(substring, string [, start_location])
  • substring es la subcadena a buscar. Su longitud está limitada a 8,000 caracteres.
  • string puede ser una cadena literal, expresión o columna. Es una cadena para buscar.
  • start_location es la ubicación en la que comienza la búsqueda. Start_location es un entero o una expresión que se evalúa como un valor de esos tipos de datos.

El parámetro start_location es opcional. Si se omite, se establece cero o valor negativo, la búsqueda comienza al inicio de la cadena.

Tenga en cuenta que la función CHARINDEX() puede realizar búsquedas sensibles a mayúsculas y minúsculas en función de la clasificación especificada.

Ejemplos de la función CHARINDEX() de SQL Server

Veamos algunos ejemplos del uso de la función CHARINDEX().

A) Usar CHARINDEX() para realizar una sola búsqueda

El siguiente ejemplo utiliza la función CHARINDEX() para realizar una búsqueda simple de la cadena 'SQL' en el 'SQL Server CHARINDEX Estrada Web Group'

SELECT
    CHARINDEX('SQL', 'SQL Server CHARINDEX Estrada Web Group') position;

Resultado:

Position
-----------
1
(1 row affected)

B) Uso de la función CHARINDEX () para realizar una búsqueda que no distingue entre mayúsculas y minúsculas

Esta declaración muestra una búsqueda que no distingue entre mayúsculas y minúsculas para la cadena 'SERVER' en 'SQL Server CHARINDEX Estrada Web Group ':      

SELECT
    CHARINDEX(
        'SERVER',
        'SQL Server CHARINDEX Estrada Web Group'
    ) position;

Resultado:

Position
-----------
5
(1 row affected)

C) Uso de la función CHARINDEX() para realizar una búsqueda sensible a mayúsculas y minúsculas

El siguiente ejemplo muestra una búsqueda que distingue entre mayúsculas y minúsculas para la cadena 'SERVER' en la cadena buscada 'SQL Server CHARINDEX Estrada Web Group'.      

SELECT
    CHARINDEX(
        'SERVER',
        'SQL Server CHARINDEX Estrada Web Group'
        COLLATE Latin1_General_CS_AS
    ) position;

Resultado:

Position
-----------
0
(1 row affected)

D) Usar la función CHARINDEX() para buscar una subcadena inexistente

El siguiente ejemplo ilustra una búsqueda de la subcadena 'aguja' en la cadena 'Esto es un pajar'

DECLARE @cadena VARCHAR(100); 

SELECT @cadena = 'Esto es un pajar'; 

SELECT CHARINDEX('aguja', @cadena); 

Resultado

Position
-----------
0
(1 row affected)

E) Uso de la función CHARINDEX() para buscar desde una posición específica

Este ejemplo usa el parámetro start_location para comenzar la búsqueda de 'en' en el 3 y  el 10 carácter de la cadena 'Aprende SQL en Estrada Web Group':

SELECT
    CHARINDEX('en','Aprende SQL en Estrada Web Group',3) start_at_fifth,
    CHARINDEX('en','Aprende SQL en Estrada Web Group',10) start_at_tenth;

Resultado:

start_at_fifth   start_at_tenth
--------------        --------------
6                              15
 (1 row affected)

En este tutorial, ha aprendido cómo usar la función CHARINDEX() de SQL Server para buscar una subcadena en una cadena que comience desde una ubicación especificada y devolver la posición de la subcadena.

Compartir artículo:

Más artículos geniales

Qué es un trigger o desencadenador y cómo crearlo?

Qué es un trigger o desencadenador y cómo crearlo?

En este artículo veremos ¿qué es un trigger? es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;