Volver a la lista de artículos Artículos
Lectura de 7 minutos

Una visión general de las funciones de texto SQL

En este artículo, hablaremos de los pormenores de las funciones de texto más comunes de SQL, que le permiten encontrar y trabajar con valores de cadena.

Antes de que nos sumerjamos en las funciones de texto, recapitulemos rápidamente lo que es una función SQL. En pocas palabras, una función es un fragmento de código predefinido que puede utilizar en su consulta SQL. Por ejemplo, las funciones SUM(), AVG(), y COUNT() se aplican a variables numéricas para calcular la suma, el promedio y el número de registros respectivamente.

Utilizaremos la siguiente OrderDetails tabla de la conocida base de datos Northwind para demostrar cómo funciona la función SUM().

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140
518104432812

El objetivo es devolver el total de Quantity ordenado en los 518 pedidos.

CONSULTA:

SELECT SUM(Quantity) AS Total_Ordered_Quantity
FROM OrderDetails

RESULTADO:

Número de registros: 1

Total_Ordered_Quantity
12743

En el ejemplo anterior, se ha utilizado la función SUM() para calcular el total de todas las cantidades pedidas. Los argumentos (o parámetros) de la función se definen dentro de los paréntesis. Según la sintaxis de SQL, los paréntesis son necesarios incluso cuando no se pasan parámetros a la función.

Funciones de texto en SQL

Las bases de datos vienen con muchas funciones incorporadas diferentes. Por lo tanto, es importante conocer las funciones más utilizadas para poder escribir consultas de forma eficaz y eficiente, sin tener que crear sus propias funciones definidas por el usuario desde cero. LearnSQL.es's Funciones estándar de SQL cubren todas las funciones comunes de texto, numéricas, de fecha y hora, y de agregación, utilizando ejemplos prácticos detallados, recorridos y ejercicios.

En este artículo, veremos algunas de las funciones de texto más utilizadas en SQL . Estas funcionan con tipos de datos de texto como VARCHAR, CHAR y TEXT.

Tenga en cuenta que las diferentes bases de datos tienen diferentes funciones incorporadas. En este artículo, sólo nos centraremos en las funciones SQL estándar, que funcionan para la mayoría de las bases de datos compatibles con SQL. (Consulte la documentación de su base de datos para más detalles.) Para los ejemplos que se muestran a continuación, utilizaremos la tabla Customers de la misma base de datos Northwind.

CustomerIDCustomerNameContactNameAddressCityPostal Code
1102481112
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DP

CHAR_LENGTH()

La función CHAR_LENGTH() devuelve el número de caracteres de una cadena. Esta función rara vez se utiliza por sí sola; normalmente se encuentra junto con otras funciones.

Si la cadena de entrada está vacía, CHAR_LENGTH() devolverá 0. Si la cadena de entrada es NULL, la función devuelve NULL. La sintaxis es bastante sencilla: basta con poner el nombre de la columna correspondiente entre paréntesis.

Veamos un ejemplo en el que calculamos la longitud de la cadena para cada uno de los registros de la columna CustomerName de la tabla Customers tabla.

QUERY:

QUERY:

SELECT CHAR_LENGTH(CustomerName) 
FROM Customers;

RESULTADO:

Número de registros: 91

19
34
23
15

Tenga en cuenta que en los resultados mostrados anteriormente, la longitud de la cadena incluye los espacios entre las palabras (es decir, entre el nombre, el segundo nombre y el apellido).

UPPER() y LOWER()

Las funciones UPPER() y LOWER() convierten cada letra dentro de una cadena definida en caracteres mayúsculos o minúsculos. Estas funciones de texto se utilizan a menudo para la limpieza de datos o para preparar los datos para pasos posteriores. Por ejemplo, la función REPLACE() distingue entre mayúsculas y minúsculas, por lo que tendría que convertir cualquier cadena al mismo caso que el texto del criterio para que REPLACE() funcione.

La sintaxis general de ambas funciones es bastante sencilla; de nuevo, el nombre de la columna va dentro de los paréntesis. Intentemos convertir todos los registros de la columna Ciudad a mayúsculas.

CONSULTA:

SELECT UPPER(City) as CITY 
FROM Customers;

RESULTADO:

Número de registros: 91

CITY
BERLIN
MEXICO D.F.
MEXICO D.F.
LONDON

La sintaxis y aplicación de LOWER() es exactamente la misma que la de UPPER().

Por último, si un valor dado es NULL, la función devuelve un NULL.

SUBSTRING()

La función SUBSTRING() extrae una subcadena (es decir, parte de una cadena) dentro de una cadena. Comienza en una posición determinada y extrae una subcadena de una longitud determinada.

La sintaxis general de la función SUBSTRING() es:

SUBSTRING(string, start, length)
  • La cadena.
  • La posición (la primera posición es 1) para iniciar la extracción.
  • La longitud (es decir, el número de caracteres) a devolver.

Tenga en cuenta que todos los parámetros son obligatorios.

Si el parámetro de posición o de longitud es NULL, se devuelve un NULL. Si el parámetro de inicio es mayor que la longitud de la cadena (por ejemplo, la cadena es "APPLE" y el parámetro de inicio es 10), la función devuelve una cadena de longitud cero. Si el parámetro delongitud es un valor negativo, obtendrá un error y la consulta no se ejecutará. Si el total de los parámetros de longitud e inicio es mayor que la longitud de la cadena, la función devuelve la cadena completa.

Exploremos un ejemplo en el que extraemos los 5 primeros caracteres de cada registro de la columna CustomerName:

CONSULTA:

SELECT SUBSTRING(CustomerName, 1, 5) AS ExtractName
FROM Customers

RESULTADO:

Número de registros: 91

ExtractName
Alfre
Ana T
Anton
Aroun

REPLACE()

La función REPLACE() busca y sustituye todas las apariciones de una subcadena (dentro de una cadena dada) por una nueva subcadena. Tenga en cuenta que la parte de búsqueda de la función distingue entre mayúsculas y minúsculas.

La sintaxis general de la función REPLACE() es ...

REPLACE(string, old_string, new_string)

... donde cadena es la cadena (o el nombre de la columna) a buscar, cadena_antigua es el conjunto de caracteres a reemplazar, y cadena_nueva es el reemplazo.

Veamos un ejemplo que sustituirá la abreviatura "Str" por "Street" en la columna Address.

CONSULTA:

SELECT REPLACE(Address, 'Str.', 'Street') as Address 
FROM Customers;

RESULTADO:

Número de registros: 91

Address
Obere Street 57
Avda. de la Constitución 2222
Mataderos 2312
120 Hanover Sq.

En el ejemplo anterior, estamos sustituyendo "Str.", la antigua cadena, por "Street", la nueva cadena, en la columna Address. Este tipo de sustituciones se realizan a menudo durante la limpieza de los datos para hacerlos más consistentes para su posterior análisis.

Si el parámetro new_string es NULL, entonces REPLACE() devuelve también NULL. Si no se encuentra el parámetro old_string, no se sustituye nada; la cadena se devuelve en su forma original, sin sustituirla.

TRIM()

La función TRIM() elimina los espacios iniciales y finales (u otros caracteres que se especifiquen como parámetro opcional) del inicio y/o del final de una cadena. Suele utilizarse para eliminar los caracteres o espacios innecesarios de un conjunto de datos antes de su análisis.

La sintaxis general de la función TRIM() es:

TRIM([‘TrimCharacters’ FROM] string)

Aquí, TrimCharacters (el parámetro opcional) son los caracteres a eliminar de la cadena. Si no se especifica, SQL elimina los espacios iniciales y finales de la cadena.

En el ejemplo siguiente, aplicamos la función TRIM() a la columna Address. En este conjunto de datos, las entradas ya están bastante limpias. Pero veamos cómo funciona la función TRIM() si especificamos que todos los dígitos numéricos deben ser recortados.

CONSULTA:

SELECT TRIM('0123456789' FROM Address) As Trimmed_Address 
From Customers

RESULTADO:

Número de registros: 91

Trimmed_Address
Obere Str.
Avda. de la Constitución
Mataderos
Hanover Sq.

Podemos ver que todos los números han sido recortados tanto del inicio como del final de cada dirección. Cada uno de los caracteres especificados en la función TRIM() dentro de TrimCharacters son tratados y recortados individualmente. Además, una vez recortados los caracteres definidos, se recortan también los espacios iniciales y finales. Por ejemplo, en el caso de la Plaza de Hannover, "120" se recorta del extremo inicial, mientras que en el caso de la Avda. De la Constitución, "2222" se recorta del extremo inferior.

La función TRIM() es una forma de combinar las funcionalidades de las funciones LTRIM() y RTRIM(), que eliminan los espacios iniciales y finales respectivamente. Para un recorrido detallado, consulte Cómo eliminar los espacios iniciales y/o finales de una cadena en T-SQL.

Poniendo en práctica las funciones de texto de SQL

Espero que estos ejemplos de funciones de texto SQL de uso común le hayan ayudado a entenderlas. Los analistas de datos y los desarrolladores utilizan las funciones de texto con frecuencia, y el dominio de estas funciones es un componente clave de su repertorio SQL.

¡La mejor manera de dominar las funciones SQL es a través de la práctica! Te animo a que aprendas utilizando ejemplos prácticos como los de nuestro Funciones estándar de SQL curso. Si quieres especializarte en los dialectos PostgreSQL y T-SQL, echa un vistazo a nuestros cursos Funciones comunes en PostgreSQL y Funciones comunes en MS SQL Server.