sql >> Database >  >> NoSQL >> MongoDB

Strings samenvoegen in SQL

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

  1. NodeJS en MongoDB FindAndModify() moeten worden verwijderd of bijgewerkt

  2. Hoe verwijder ik sleutels?

  3. Basisoverwegingen voor het nemen van een MongoDB-back-up

  4. MongoDB kaart/verminderen over meerdere collecties?