sql >> Databasteknik >  >> RDS >> Database

Hur man sammanfogar strängar i SQL

Problem:

Du vill sammanfoga strängar från två kolumner i en tabell till en.

Exempel:

Vår databas har en tabell som heter student med data i följande kolumner:id , first_name och last_name .

id förnamn efternamn
1 Lora Smith
2 Emil Brun
3 Alex Jackson
4 Martin Davis

Låt oss lägga till förnamnet till efternamnet på studenten i en sträng. Använd ett mellanslag mellan varje namn.

Lösning:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;

Den här frågan returnerar poster i en kolumn med namnet full_name :

fullständigt_namn
Lora Smith
Emil Brown
Alex Jackson
Martin Davis

Diskussion:

För att lägga till en sträng till en annan och returnera ett resultat, använd || operatör. Detta lägger till två strängar från vänster och höger tillsammans och returnerar ett resultat. Om du använder namnet på kolumnen, omslut det inte inom citattecken. Men om du använder ett strängvärde som ett mellanslag eller text, omslut det inom citattecken.

I vårt exempel lade vi till ett blanksteg till first_name och sedan kolumnen last_name . Denna nya kolumn kallas full_name .

Du kan också använda en speciell funktion:CONCAT. Det krävs en lista med strängar eller namn på kolumner för att gå med som argument:

SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;

Resultaten är identiska.

Funktionen CONCAT() är dock bättre för att hämta data från en kolumn med NULL-värden. Varför? Eftersom, när en NULL ingår i värdena som ska sammanfogas, returnerar operatören NULL som ett resultat. I fallet CONCAT(), kommer NULL inte att visas.

Titta på resultatet av || operatör om Emill inte har ett efternamn registrerat:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;
fullständigt_namn
Lora Smith
NULL
Alex Jackson
Martin Davis

Titta på CONCAT-funktionen för samma data:

SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;
fullständigt_namn
Lora Smith
Emil
Alex Jackson
Martin Davis

  1. Måste släppa en databas inte göras i någon transaktion?

  2. Hur man säkerhetskopierar och återställer (exportera och importerar) MySQL-databaser

  3. 10 Microsoft Access-tips för att skapa utvalda frågor

  4. Hur transaction_timestamp() fungerar i PostgreSQL