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 |