sql >> Databáze >  >> NoSQL >> MongoDB

Jak zřetězit řetězce v SQL

Většina hlavních RDBMS poskytuje několik možností pro zřetězení dvou nebo více řetězců.

  • Je tam CONCAT() funkce, která zřetězí své argumenty.
  • Je zde také CONCAT_WS() který vám umožňuje určit oddělovač, který odděluje zřetězené řetězce.
  • A existuje také operátor zřetězení řetězců, který nám umožňuje zřetězit jeho operandy.

Níže jsou uvedeny příklady jednotlivých metod.

CONCAT() Funkce

Většina hlavních RDBMS poskytuje CONCAT() funkce pro zřetězení jeho argumentů řetězce. Obecně platí, že neřetězcové argumenty jsou převedeny na řetězec předtím, než dojde ke zřetězení.

Příklad:

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

Výsledek:

BangkokBreaking

S touto funkcí, pokud chceme vložit mezeru mezi řetězce, musíme buď přidat mezeru k jednomu z řetězců, nebo zahrnout mezeru jako samostatný argument:

SELECT 
    CONCAT('Bangkok ', 'Breaking') AS "Option 1",
    CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";

Výsledek:

+------------------+------------------+
| Option 1         | Option 2         |
+------------------+------------------+
| Bangkok Breaking | Bangkok Breaking |
+------------------+------------------+

RDBMS, které mají CONCAT() funkce zahrnují MySQL, MariaDB, SQL Server, Oracle a PostgreSQL.

SQLite neobsahuje CONCAT() funkce, ale funguje mají operátor zřetězení řetězců (viz níže).

CONCAT_WS() Funkce

Dalším způsobem, jak vložit mezeru mezi řetězce, je použít CONCAT_WS() funkce. Tato funkce vám umožňuje určit oddělovač, který bude použit k oddělení všech zřetězených řetězců.

Příklad:

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

Výsledek:

Bangkok Breaking

Tato funkce může být zvláště užitečná, pokud máte mnoho řetězců ke zřetězení:

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

Výsledek:

Red, Green, Orange, Blue

V takových případech stačí zadat oddělovač pouze jednou.

RDBMS, které mají CONCAT_WS() funkce zahrnují MySQL, MariaDB, SQL Server a PostgreSQL.

SQLite a Oracle nemají CONCAT_WS() funkce, ale dělají mají operátor zřetězení řetězců (viz níže).

Operátor zřetězení řetězců

Většina RDBMS obsahuje operátor zřetězení řetězců, který zřetězí jeho operandy.

Pokud používáte SQLite, je to vaše jediná možnost.

Příklad:

SELECT 'Spy' || 'craft';

Výsledek:

Spycraft

Všimněte si, že v MySQL budete muset nejprve povolit operátor zřetězení potrubí.

Totéž platí pro MariaDB.

SQL Server

Výše uvedený příklad nebude fungovat v SQL Server. V SQL Server použijte znaménko plus (+ ) operátor zřetězení řetězců:

SELECT 'Spy' + 'craft';

Výsledek:

Spycraft

  1. Zkontrolujte existenci kolekce v MongoDB

  2. MongoDB úplné a částečné vyhledávání textu

  3. Existuje nějaký ekvivalent NOW() v MongoDB

  4. Aktualizace změny licence MongoDB SSPL