sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man sammanfogar strängar i SQL

De flesta av de stora RDBMS:erna tillhandahåller flera alternativ för att sammanfoga två eller flera strängar.

  • Det finns CONCAT() funktion, som sammanfogar dess argument.
  • Det finns också en CONCAT_WS() som låter dig ange en separator som separerar de sammanlänkade strängarna.
  • Och det finns också en strängsammansättningsoperator, som gör att vi kan sammanfoga dess operander.

Nedan finns exempel på varje metod.

CONCAT() Funktion

De flesta större RDBMS tillhandahåller en CONCAT() funktion för att sammanfoga dess strängargument. I allmänhet konverteras icke-strängargument till en sträng innan sammanlänkningen sker.

Exempel:

SELECT CONCAT('Bangkok', 'Breaking');

Resultat:

BangkokBreaking

Med den här funktionen, om vi vill inkludera ett mellanslag mellan strängarna, måste vi antingen lägga till ett mellanslag till en av strängarna eller inkludera ett mellanslag som ett 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 som har en CONCAT() funktioner inkluderar MySQL, MariaDB, SQL Server, Oracle och PostgreSQL.

SQLite innehåller inte en CONCAT() fungerar, men det gör det har en strängsammansättningsoperator (se nedan).

CONCAT_WS() Funktion

Ett annat sätt att inkludera ett mellanslag mellan strängarna är att använda CONCAT_WS() fungera. Den här funktionen låter dig ange en separator som ska användas för att separera alla sammanlänkade strängar.

Exempel:

SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');

Resultat:

Bangkok Breaking

Den här funktionen kan vara särskilt användbar om du har många strängar att sammanfoga:

SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');

Resultat:

Red, Green, Orange, Blue

I sådana fall behöver du bara ange separatorn en gång.

RDBMS som har en CONCAT_WS() funktioner inkluderar MySQL, MariaDB, SQL Server och PostgreSQL.

SQLite och Oracle har inte en CONCAT_WS() funktion, men de gör har en strängsammansättningsoperator (se nedan).

Strängsammansättningsoperatören

De flesta RDBMS inkluderar en strängsammansättningsoperator som sammanfogar dess operander.

Om du använder SQLite är detta ditt enda alternativ.

Exempel:

SELECT 'Spy' || 'craft';

Resultat:

Spycraft

Observera att i MySQL måste du först aktivera rörsammansättningsoperatorn.

Detsamma gäller MariaDB.

SQL-server

Ovanstående exempel fungerar inte i SQL Server. I SQL Server, använd plustecknet (+ ) strängsammansättningsoperator:

SELECT 'Spy' + 'craft';

Resultat:

Spycraft

  1. Mongoose valfria sökfrågeparametrar?

  2. Vilket är det maximala antalet parametrar som skickas till $in-frågan i MongoDB?

  3. Laravel - Radera alla cache/redis-nycklar som innehåller en specifik sträng

  4. Klass 'MongoDB\Driver\Manager' hittades inte