La maggior parte dei principali RDBMS fornisce diverse opzioni per concatenare due o più stringhe.
- C'è il
CONCAT()
funzione, che concatena i suoi argomenti. - C'è anche un
CONCAT_WS()
che consente di specificare un separatore che separi le stringhe concatenate. - E c'è anche un operatore di concatenazione di stringhe, che ci consente di concatenare i suoi operandi.
Di seguito sono riportati esempi di ciascun metodo.
Il CONCAT()
Funzione
La maggior parte dei principali RDBMS fornisce un CONCAT()
funzione per concatenare i suoi argomenti stringa. In genere, gli argomenti non stringa vengono convertiti in una stringa prima che si verifichi la concatenazione.
Esempio:
SELECT CONCAT('Bangkok', 'Breaking');
Risultato:
BangkokBreaking
Con questa funzione, se vogliamo includere uno spazio tra le stringhe, dovremmo aggiungere uno spazio a una delle stringhe o includere uno spazio come argomento separato:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Risultato:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS che hanno un CONCAT()
includono MySQL, MariaDB, SQL Server, Oracle e PostgreSQL.
SQLite non include un CONCAT()
funzione, ma fa avere un operatore di concatenazione di stringhe (vedi sotto).
Il CONCAT_WS()
Funzione
Un altro modo per includere uno spazio tra le stringhe è usare CONCAT_WS()
funzione. Questa funzione consente di specificare un separatore che verrà utilizzato per separare tutte le stringhe concatenate.
Esempio:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Risultato:
Bangkok Breaking
Questa funzione può essere particolarmente utile se hai molte stringhe da concatenare:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Risultato:
Red, Green, Orange, Blue
In questi casi, devi solo specificare il separatore una volta.
RDBMS che hanno un CONCAT_WS()
includono MySQL, MariaDB, SQL Server e PostgreSQL.
SQLite e Oracle non hanno un CONCAT_WS()
funzione, ma lo fanno avere un operatore di concatenazione di stringhe (vedi sotto).
L'operatore di concatenazione di stringhe
La maggior parte degli RDBMS include un operatore di concatenazione di stringhe che concatena i suoi operandi.
Se stai usando SQLite, questa è la tua unica opzione.
Esempio:
SELECT 'Spy' || 'craft';
Risultato:
Spycraft
Nota che in MySQL, dovrai prima abilitare l'operatore di concatenazione pipe.
Lo stesso vale per MariaDB.
SQL Server
L'esempio sopra non funzionerà in SQL Server. In SQL Server, utilizzare il segno più (+
) operatore di concatenazione di stringhe:
SELECT 'Spy' + 'craft';
Risultato:
Spycraft