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

So verketten Sie Zeichenfolgen in SQL

Problem:

Sie möchten Zeichenfolgen aus zwei Spalten einer Tabelle zu einer zusammenfügen.

Beispiel:

Unsere Datenbank hat eine Tabelle namens student mit Daten in den folgenden Spalten:id , first_name und last_name .

id Vorname Nachname
1 Lora Smith
2 Emil Braun
3 Alex Jackson
4 Martin Davis

Lassen Sie uns den Vornamen in einer Zeichenfolge an den Nachnamen des Schülers anhängen. Verwenden Sie zwischen jedem Namen ein Leerzeichen.

Lösung:

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

Diese Abfrage gibt Datensätze in einer Spalte namens full_name zurück :

vollständiger_name
Lora Smith
Emil Brown
Alex Jackson
Martin Davis

Diskussion:

Um eine Zeichenfolge an eine andere anzuhängen und ein Ergebnis zurückzugeben, verwenden Sie || Operator. Dies fügt zwei Zeichenfolgen von links und rechts zusammen und gibt ein Ergebnis zurück. Wenn Sie den Namen der Spalte verwenden, schließen Sie ihn nicht in Anführungszeichen ein. Wenn Sie jedoch einen Zeichenfolgenwert als Leerzeichen oder Text verwenden, schließen Sie ihn in Anführungszeichen ein.

In unserem Beispiel haben wir first_name ein Leerzeichen hinzugefügt und dann die Spalte last_name . Diese neue Spalte heißt full_name .

Sie können auch eine spezielle Funktion verwenden:CONCAT. Es braucht eine Liste von Strings oder Namen von Spalten, die als Argumente verbunden werden sollen:

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

Die Ergebnisse sind identisch.

Die CONCAT()-Funktion eignet sich jedoch besser zum Abrufen von Daten aus einer Spalte mit NULL-Werten. Wieso den? Denn wenn eine NULL in den zu verknüpfenden Werten enthalten ist, gibt der Operator als Ergebnis NULL zurück. Bei CONCAT() wird NULL nicht angezeigt.

Sehen Sie sich das Ergebnis von || an Bediener, wenn Emill keinen Nachnamen gespeichert hat:

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

Sehen Sie sich die CONCAT-Funktion für die gleichen Daten an:

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