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

Sådan sammenkædes strenge i SQL

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

  1. Entitetsramme PostgreSQL

  2. Kardinalitetsvurdering for flere prædikater

  3. 7 tips til bedste praksis for PostgreSQL-bulkdataindlæsning

  4. Hvordan får man tabeldefinition i Oracle?