SQL

¿Cómo obtener una subcadena de una cadena de caracteres en SQL Server con la función Substring?

Estrada Web Group
Administrador
¿Cómo obtener una subcadena de una cadena de caracteres en SQL Server con la función Substring?

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

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

SUBSTRING() extrae una subcadena con una longitud especificada a partir de una ubicación en una cadena de entrada.

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

SUBSTRING(input_string, start, length);
  • input_string puede ser un varchar, binario, texto, ntext o imagen.
  • start es un número entero que especifica la ubicación donde comienza la subcadena que se regresara. Tenga en cuenta que el primer carácter en input_string es 1, no cero.
  • length es un entero positivo que especifica el número de caracteres de la subcadena que se devolverá. La función SUBSTRING() genera un error si la longitud es negativa. Si start + length> que el total del largo de input_string, la subcadena comenzará al inicio e incluirá los caracteres restantes de input_string.

Ejemplos de SUBSTRING () de SQL Server

Veamos algunos ejemplos del uso de la función SUBSTRING() para comprender cómo funciona.

A) Uso de la función SUBSTRING() con cadenas de texto

Este ejemplo extrae una subcadena con una longitud de 12, comenzando desde el quinto carácter, en la cadena 'SQL Server SUBSTRING de Estrada Web Group'.

SELECT  SUBSTRING('SQL Server SUBSTRING de Estrada Web Group', 24, 12) result;

El resultado es el siguiente:

Result
------
Estrada Web

(1 row affected)

B) Uso de la función SUBSTRING() con columnas de una tabla

Utilizaremos la tabla sales.customers en la base de datos de muestra para este ejemplo.

SUBSTRING SQL

Este ejemplo utiliza la función SUBSTRING() para extraer el dominio de las direcciones de correo electrónico de los clientes:

SELECT
    email,
    SUBSTRING(
        email,
        CHARINDEX('@', email)+1,
        LEN(email)-CHARINDEX('@', email)
    ) domain
FROM
    sales.customers
ORDER BY
    email;

Resultado:

como usar sql substring

Cómo funciona.

  1. Primero, utilizamos la función CHARINDEX() para buscar el carácter "@" en el correo electrónico. El dominio comenzará desde el carácter @ más uno.
  2. Luego, utilizamos el resultado de la función CHARINDEX() para determinar:
    • La ubicación inicial del dominio: CHARINDEX ('@', correo electrónico) + 1
    • La longitud del dominio: LEN (correo electrónico) -CHARINDEX ('@', correo electrónico)

Para contar la cantidad de correos electrónicos por dominio, puede usar la siguiente consulta:

SELECT
    SUBSTRING(
        email,
        CHARINDEX('@', email)+1,
        LEN(email)-CHARINDEX('@', email)
    ) domain,
    COUNT(email) domain_count
FROM
    sales.customers
GROUP BY
    SUBSTRING(
            email,
            CHARINDEX('@', email)+1,
            LEN(email)-CHARINDEX('@', email)
);

Resultado:

OBTENER UNA SUBCADENA O SUBQUERY EN SQL SERVER

En este tutorial, ha aprendido cómo usar la función SUBSTRING() de SQL Server para extraer caracteres de una cadena.

 

Compartir artículo:

Más artículos geniales

¿Cómo calcular la diferencia entre dos fechas en SQL Server con DATEDIFF?

¿Cómo calcular la diferencia entre dos fechas en SQL Server con DATEDIFF?

Resumen: en este artículo aprenderás a calcular la diferencia entre dos fechas en una determinada unidad de tiempo, como días, meses o años en SQL Server.

Ver artículo completo
Cómo convertir un valor a otro tipo de dato con la función CAST de SQL Server

Cómo convertir un valor a otro tipo de dato con la función CAST de SQL Server

Resumen: en este tutorial, aprenderás a usar la función CAST() de SQL Server para convertir un valor o una expresión de un tipo a otro.

Ver artículo completo
Función ROW_NUMBER de SQL Server para asignar un numérico secuencial

Función ROW_NUMBER de SQL Server para asignar un numérico secuencial

Resumen: en este tutorial, aprenderás a usar la función ROW_NUMBER() de SQL Server para asignar un entero secuencial a cada fila de un conjunto de resultados.

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