CodeGym /Corsi /SQL SELF /Lavorare con le stringhe: LENGTH(), SUBSTRING(), TRIM(), ...

Lavorare con le stringhe: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Livello 6 , Lezione 0
Disponibile

Quando lavori con nomi, indirizzi, email o qualsiasi altro testo — quasi sempre ti serve fare una di queste cose:

  • Estrarre una parte della stringa
  • Scoprire la lunghezza
  • Togliere spazi inutili
  • Trovare/sostituire un frammento
  • Formattare l'output

Per esempio, ti serve:

  • Mostrare solo il cognome dal nome completo.
  • Trovare studenti il cui cognome inizia con "P".
  • Sostituire tutti gli spazi con underscore.
  • Mostrare il cognome con la prima lettera maiuscola.

Tutte queste cose si fanno facilmente con le funzioni sulle stringhe di PostgreSQL.

LENGTH() — lunghezza della stringa

La funzione LENGTH() restituisce il numero di caratteri in una stringa.

Sintassi:

LENGTH(string)

Esempio:

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

Utile per controllare la lunghezza di nome e cognome, password e altri testi.

SUBSTRING() — estrarre una parte della stringa

Permette di prendere una sottostringa — tipo i primi 3 caratteri del cognome o il dominio da una email.

Sintassi:

SUBSTRING(string FROM start FOR length)
  • start — posizione del primo carattere (si parte da 1)
  • length — quanti caratteri estrarre

Esempio 1: primi 3 caratteri del cognome

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

Esempio 2: dominio dell'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() — togliere spazi inutili

Toglie spazi (e altri caratteri) all'inizio e/o alla fine della stringa.

Sintassi:

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

Ma di solito si usa semplicemente così:

TRIM(string)

Esempio:

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

Fondamentale se gli utenti inseriscono dati a mano (tipo con spazi all'inizio).

POSITION() — cercare una sottostringa

Restituisce la posizione da cui parte la sottostringa.

Sintassi:

POSITION(substring IN string)

Esempio:

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

Puoi usarla insieme a SUBSTRING() per estrarre parti della stringa.

REPLACE() — sostituire una sottostringa

Sostituisce tutte le occorrenze di una sottostringa con un'altra.

Sintassi:

REPLACE(string, from_substring, to_substring)

Esempio: sostituire spazi con underscore

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

INITCAP() — prima lettera maiuscola

Trasforma la stringa così che la prima lettera di ogni parola sia maiuscola, le altre minuscole.

Sintassi:

INITCAP(string)

Esempio:

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

Comodo per standardizzare nomi e cognomi.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION