Problema:
Vuoi unire stringhe da due colonne di una tabella in una.
Esempio:
Il nostro database ha una tabella chiamata student
con i dati nelle seguenti colonne:id
, first_name
e last_name
.
id | nome | cognome |
---|---|---|
1 | Lora | Fabio |
2 | Emil | Marrone |
3 | Alex | Jackson |
4 | Martin | Davis |
Aggiungiamo il nome al cognome dello studente in una stringa. Usa uno spazio tra ogni nome.
Soluzione:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
Questa query restituisce i record in una colonna denominata full_name
:
nome_completo |
---|
Lora Smith |
Emil Brown |
Alex Jackson |
Martin Davis |
Discussione:
Per aggiungere una stringa a un'altra e restituire un risultato, utilizzare || operatore. Questo aggiunge due stringhe da sinistra e da destra insieme e restituisce un risultato. Se usi il nome della colonna, non racchiuderlo tra virgolette. Tuttavia, quando utilizzi un valore stringa come spazio o testo, racchiudilo tra virgolette.
Nel nostro esempio, abbiamo aggiunto uno spazio a first_name
e poi la colonna last_name
. Questa nuova colonna si chiama full_name
.
Puoi anche usare una funzione speciale:CONCAT. Richiede un elenco di stringhe o nomi di colonne da unire come argomenti:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
I risultati sono identici.
Tuttavia, la funzione CONCAT() è migliore per recuperare i dati da una colonna con valori NULL. Come mai? Perché, quando un NULL è incluso nei valori da unire, l'operatore restituisce NULL come risultato. Nel caso di CONCAT(), NULL non verrà visualizzato.
Guarda il risultato del || operatore se Emill non ha un cognome registrato:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
nome_completo |
---|
Lora Smith |
NULL |
Alex Jackson |
Martin Davis |
Guarda la funzione CONCAT per gli stessi dati:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
nome_completo |
---|
Lora Smith |
Emil |
Alex Jackson |
Martin Davis |