Problem:
Du vil forbinde strenge fra to kolonner i en tabel til én.
Eksempel:
Vores database har en tabel ved navn student
med data i følgende kolonner:id
, first_name
og last_name
.
id | fornavn | efternavn |
---|---|---|
1 | Lora | Smith |
2 | Emil | Brun |
3 | Alex | Jackson |
4 | Martin | Davis |
Lad os tilføje fornavnet til elevens efternavn i én streng. Brug et mellemrum mellem hvert navn.
Løsning:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
Denne forespørgsel returnerer poster i én kolonne med navnet full_name
:
fuldt_navn |
---|
Lora Smith |
Emil Brown |
Alex Jackson |
Martin Davis |
Diskussion:
For at tilføje en streng til en anden og returnere et resultat, skal du bruge || operatør. Dette tilføjer to strenge fra venstre og højre sammen og returnerer ét resultat. Hvis du bruger navnet på kolonnen, skal du ikke sætte det i anførselstegn. Men når du bruger en strengværdi som mellemrum eller tekst, skal du omslutte den i anførselstegn.
I vores eksempel tilføjede vi et mellemrum til first_name
og derefter kolonnen last_name
. Denne nye kolonne kaldes full_name
.
Du kan også bruge en speciel funktion:CONCAT. Det kræver en liste over strenge eller navne på kolonner at slutte sig til som argumenter:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
Resultaterne er identiske.
CONCAT()-funktionen er dog bedre til at hente data fra en kolonne med NULL-værdier. Hvorfor? Fordi, når en NULL er inkluderet i de værdier, der skal forbindes, returnerer operatøren NULL som et resultat. I tilfælde af CONCAT(), vil NULL ikke blive vist.
Se på resultatet af || operatør, hvis Emill ikke har et efternavn registreret:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
fuldt_navn |
---|
Lora Smith |
NULL |
Alex Jackson |
Martin Davis |
Se på CONCAT-funktionen for de samme data:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
fuldt_navn |
---|
Lora Smith |
Emil |
Alex Jackson |
Martin Davis |