CodeGym /Cursos /SQL SELF /Trabajo con cadenas: LENGTH(), SUBSTRING(), TRIM(), POSIT...

Trabajo con cadenas: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Nivel 6, Lección 0
Disponible

Cuando trabajas con nombres, direcciones, emails o cualquier otro texto — casi siempre necesitas hacer una de estas cosas:

  • Extraer una parte de la cadena
  • Saber la longitud
  • Quitar espacios de más
  • Buscar/reemplazar un fragmento
  • Formatear la salida

Por ejemplo, necesitas:

  • Mostrar solo el apellido de un nombre completo.
  • Encontrar estudiantes cuyo apellido empieza por «P».
  • Reemplazar todos los espacios por guiones bajos.
  • Mostrar el apellido con la primera letra en mayúscula.

Todo esto se resuelve fácil usando funciones de cadenas en PostgreSQL.

LENGTH() — longitud de la cadena

La función LENGTH() devuelve la cantidad de caracteres en una cadena.

Sintaxis:

LENGTH(string)

Ejemplo:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Útil para comprobar la longitud de nombres completos, contraseñas y otros textos.

SUBSTRING() — extraer parte de la cadena

Permite sacar una subcadena de una cadena — por ejemplo, los primeros 3 caracteres del apellido o el dominio de un email.

Sintaxis:

SUBSTRING(string FROM start FOR length)
  • start — posición del primer carácter (empieza en 1)
  • length — cuántos caracteres extraer

Ejemplo 1: los primeros 3 caracteres del apellido

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Ejemplo 2: dominio del email

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — quitar espacios de más

Quita espacios (y otros caracteres) al principio y/o al final de la cadena.

Sintaxis:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Pero normalmente se usa así de simple:

TRIM(string)

Ejemplo:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

Es muy importante si los usuarios meten datos manualmente (por ejemplo, con espacios al principio).

POSITION() — buscar subcadena

Devuelve la posición donde empieza la subcadena.

Sintaxis:

POSITION(substring IN string)

Ejemplo:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Puedes usarlo junto con SUBSTRING() para extraer partes de la cadena.

REPLACE() — reemplazar subcadena

Reemplaza todas las apariciones de una subcadena por otra.

Sintaxis:

REPLACE(string, from_substring, to_substring)

Ejemplo: reemplazar espacios por guiones bajos

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — primera letra en mayúscula

Convierte la cadena para que la primera letra de cada palabra sea mayúscula y las demás minúsculas.

Sintaxis:

INITCAP(string)

Ejemplo:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Muy útil para estandarizar nombres completos.

2
Tarea
SQL SELF, nivel 6, lección 0
Bloqueada
Determinación de la longitud de una cadena
Determinación de la longitud de una cadena
2
Tarea
SQL SELF, nivel 6, lección 0
Bloqueada
Extracción de parte de una cadena
Extracción de parte de una cadena
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION