De meeste van de belangrijkste RDBMS'en bieden verschillende opties voor het aaneenschakelen van twee of meer tekenreeksen.
- Er is de
CONCAT()
functie, die zijn argumenten samenvoegt. - Er is ook een
CONCAT_WS()
waarmee u een scheidingsteken kunt opgeven dat de aaneengeschakelde tekenreeksen scheidt. - En er is ook een operator voor het samenvoegen van strings, waarmee we de operanden kunnen samenvoegen.
Hieronder staan voorbeelden van elke methode.
De CONCAT()
Functie
De meeste grote RDBMS'en bieden een CONCAT()
functie voor het aaneenschakelen van zijn stringargumenten. Over het algemeen worden niet-tekenreeksargumenten geconverteerd naar een tekenreeks voordat de aaneenschakeling plaatsvindt.
Voorbeeld:
SELECT CONCAT('Bangkok', 'Breaking');
Resultaat:
BangkokBreaking
Als we met deze functie een spatie tussen de tekenreeksen willen opnemen, moeten we ofwel een spatie toevoegen aan een van de tekenreeksen, of een spatie opnemen als een afzonderlijk argument:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Resultaat:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS'en met een CONCAT()
functies omvatten MySQL, MariaDB, SQL Server, Oracle en PostgreSQL.
SQLite bevat geen CONCAT()
functie, maar het doet het wel een tekenreeksaaneenschakelingsoperator hebben (zie hieronder).
De CONCAT_WS()
Functie
Een andere manier om een spatie tussen de tekenreeksen op te nemen, is door de CONCAT_WS()
. te gebruiken functie. Met deze functie kunt u een scheidingsteken opgeven dat wordt gebruikt om alle aaneengeschakelde tekenreeksen te scheiden.
Voorbeeld:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Resultaat:
Bangkok Breaking
Deze functie kan met name handig zijn als u veel strings moet samenvoegen:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Resultaat:
Red, Green, Orange, Blue
In dergelijke gevallen hoeft u het scheidingsteken maar één keer op te geven.
RDBMS'en met een CONCAT_WS()
functies omvatten MySQL, MariaDB, SQL Server en PostgreSQL.
SQLite en Oracle hebben geen CONCAT_WS()
functioneren, maar ze doen een tekenreeksaaneenschakelingsoperator hebben (zie hieronder).
De tekenreeksaaneenschakelingsoperator
De meeste RDBMS'en bevatten een tekenreeksaaneenschakelingsoperator die de operanden samenvoegt.
Als je SQLite gebruikt, is dit je enige optie.
Voorbeeld:
SELECT 'Spy' || 'craft';
Resultaat:
Spycraft
Merk op dat u in MySQL eerst de operator voor pijpaaneenschakeling moet inschakelen.
Hetzelfde geldt voor MariaDB.
SQL-server
Het bovenstaande voorbeeld werkt niet in SQL Server. Gebruik in SQL Server het plusteken (+
) tekenreeksaaneenschakelingsoperator:
SELECT 'Spy' + 'craft';
Resultaat:
Spycraft