De fleste af de store RDBMS'er giver flere muligheder for at sammenkæde to eller flere strenge.
- Der er
CONCAT()
funktion, som sammenkæder dens argumenter. - Der er også en
CONCAT_WS()
der giver dig mulighed for at angive en separator, der adskiller de sammenkædede strenge. - Og der er også en strengsammenkædningsoperator, som giver os mulighed for at sammenkæde dens operander.
Nedenfor er eksempler på hver metode.
CONCAT()
Funktion
De fleste større RDBMS'er giver en CONCAT()
funktion til at sammenkæde dens strengargumenter. Generelt konverteres ikke-streng-argumenter til en streng, før sammenkædningen finder sted.
Eksempel:
SELECT CONCAT('Bangkok', 'Breaking');
Resultat:
BangkokBreaking
Med denne funktion, hvis vi vil inkludere et mellemrum mellem strengene, skal vi enten tilføje et mellemrum til en af strengene eller inkludere et mellemrum som et separat argument:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Resultat:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS'er, der har en CONCAT()
funktioner omfatter MySQL, MariaDB, SQL Server, Oracle og PostgreSQL.
SQLite inkluderer ikke en CONCAT()
funktion, men det gør har en strengsammenkædningsoperator (se nedenfor).
CONCAT_WS()
Funktion
En anden måde at inkludere et mellemrum mellem strengene på er at bruge CONCAT_WS()
fungere. Denne funktion giver dig mulighed for at angive en separator, der skal bruges til at adskille alle sammenkædede strenge.
Eksempel:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Resultat:
Bangkok Breaking
Denne funktion kan være særlig nyttig, hvis du har mange strenge, der skal sammenkædes:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Resultat:
Red, Green, Orange, Blue
I sådanne tilfælde behøver du kun at angive separatoren én gang.
RDBMS'er, der har en CONCAT_WS()
funktioner omfatter MySQL, MariaDB, SQL Server og PostgreSQL.
SQLite og Oracle har ikke en CONCAT_WS()
funktion, men de gør har en strengsammenkædningsoperator (se nedenfor).
Stringsammenkædningsoperatøren
De fleste RDBMS'er inkluderer en strengsammenkædningsoperator, der sammenkæder dens operander.
Hvis du bruger SQLite, er dette din eneste mulighed.
Eksempel:
SELECT 'Spy' || 'craft';
Resultat:
Spycraft
Bemærk, at i MySQL skal du først aktivere rørsammenkædningsoperatøren.
Det samme gælder for MariaDB.
SQL-server
Ovenstående eksempel virker ikke i SQL Server. I SQL Server skal du bruge plustegnet (+
) strengsammenkædningsoperator:
SELECT 'Spy' + 'craft';
Resultat:
Spycraft