¿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.
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:
Cómo funciona.
- 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.
- 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:
En este tutorial, ha aprendido cómo usar la función SUBSTRING()
de SQL Server para extraer caracteres de una cadena.