Database
 sql >> Database >  >> RDS >> Database

Come concatenare stringhe in SQL

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