Die meisten großen RDBMS bieten mehrere Optionen zum Verketten von zwei oder mehr Zeichenfolgen.
- Da ist der
CONCAT()
Funktion, die ihre Argumente verkettet. - Es gibt auch einen
CONCAT_WS()
Dadurch können Sie ein Trennzeichen angeben, das die verketteten Zeichenfolgen trennt. - Und es gibt auch einen String-Verkettungsoperator, mit dem wir seine Operanden verketten können.
Nachfolgend finden Sie Beispiele für jede Methode.
Der CONCAT()
Funktion
Die meisten großen RDBMSs bieten ein CONCAT()
Funktion zum Verketten ihrer String-Argumente. Im Allgemeinen werden Nicht-String-Argumente in einen String konvertiert, bevor die Verkettung erfolgt.
Beispiel:
SELECT CONCAT('Bangkok', 'Breaking');
Ergebnis:
BangkokBreaking
Wenn wir bei dieser Funktion ein Leerzeichen zwischen den Zeichenfolgen einfügen möchten, müssen wir entweder einer der Zeichenfolgen ein Leerzeichen hinzufügen oder ein Leerzeichen als separates Argument einfügen:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Ergebnis:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMSs, die einen CONCAT()
haben Funktion umfassen MySQL, MariaDB, SQL Server, Oracle und PostgreSQL.
SQLite enthält kein CONCAT()
funktionieren, aber es tut haben einen String-Verkettungsoperator (siehe unten).
Der CONCAT_WS()
Funktion
Eine andere Möglichkeit, ein Leerzeichen zwischen den Zeichenfolgen einzufügen, ist die Verwendung von CONCAT_WS()
Funktion. Mit dieser Funktion können Sie ein Trennzeichen angeben, das zum Trennen aller verketteten Zeichenfolgen verwendet wird.
Beispiel:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Ergebnis:
Bangkok Breaking
Diese Funktion kann besonders nützlich sein, wenn Sie viele Zeichenfolgen verketten müssen:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Ergebnis:
Red, Green, Orange, Blue
In solchen Fällen müssen Sie das Trennzeichen nur einmal angeben.
RDBMSs, die einen CONCAT_WS()
haben Funktion gehören MySQL, MariaDB, SQL Server und PostgreSQL.
SQLite und Oracle haben kein CONCAT_WS()
funktionieren, aber sie tun haben einen String-Verkettungsoperator (siehe unten).
Der String-Verkettungsoperator
Die meisten RDBMS enthalten einen Zeichenfolgenverkettungsoperator, der seine Operanden verkettet.
Wenn Sie SQLite verwenden, ist dies Ihre einzige Option.
Beispiel:
SELECT 'Spy' || 'craft';
Ergebnis:
Spycraft
Beachten Sie, dass Sie in MySQL zuerst den Pipe-Verkettungsoperator aktivieren müssen.
Dasselbe gilt für MariaDB.
SQL-Server
Das obige Beispiel funktioniert nicht in SQL Server. Verwenden Sie in SQL Server das Pluszeichen (+
) String-Verkettungsoperator:
SELECT 'Spy' + 'craft';
Ergebnis:
Spycraft