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

¿Cómo unir o concatenar dos o más columnas separadas por un espacio en SQL con CONCAT_WS?

¿Cómo unir o concatenar dos o más columnas separadas por un espacio en SQL con CONCAT_WS?

En este tutorial, aprenderá a usar la función CONCAT_WS() de SQL Server para unir varias cadenas junto con un separador, esta función solo esta disponible en SQL Server 2017 en adelante.

Ver artículo completo
¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

En este tutorial, aprenderás a usar la función MAX() de SQL Server para encontrar el valor máximo en un grupo de resultados.

Ver artículo completo
¿Cómo remplazar una cadena de caracteres por otra en SQL Server?

¿Cómo remplazar una cadena de caracteres por otra en SQL Server?

En este tutorial, aprenderás a usar la función REPLACE() de SQL Server para reemplazar todas las veces que aparezca una palabra, frase o cadena de caracteres por otra palabra o frase dentro de una cadena de caracteres.

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 ;