La plupart des principaux SGBDR offrent plusieurs options pour concaténer deux ou plusieurs chaînes.
- Il y a le
CONCAT()
fonction, qui concatène ses arguments. - Il y a aussi un
CONCAT_WS()
qui vous permet de spécifier un séparateur qui sépare les chaînes concaténées. - Et il y a aussi un opérateur de concaténation de chaîne, qui nous permet de concaténer ses opérandes.
Vous trouverez ci-dessous des exemples de chaque méthode.
Le CONCAT()
Fonction
La plupart des principaux SGBDR fournissent un CONCAT()
fonction pour concaténer ses arguments de chaîne. Généralement, les arguments qui ne sont pas des chaînes sont convertis en chaîne avant que la concaténation ne se produise.
Exemple :
SELECT CONCAT('Bangkok', 'Breaking');
Résultat :
BangkokBreaking
Avec cette fonction, si nous voulons inclure un espace entre les chaînes, nous devons soit ajouter un espace à l'une des chaînes, soit inclure un espace comme argument séparé :
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Résultat :
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
SGBDR qui ont un CONCAT()
incluent MySQL, MariaDB, SQL Server, Oracle et PostgreSQL.
SQLite n'inclut pas de CONCAT()
fonction, mais il fait avoir un opérateur de concaténation de chaînes (voir ci-dessous).
Le CONCAT_WS()
Fonction
Une autre façon d'inclure un espace entre les chaînes est d'utiliser le CONCAT_WS()
une fonction. Cette fonction vous permet de spécifier un séparateur qui sera utilisé pour séparer toutes les chaînes concaténées.
Exemple :
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Résultat :
Bangkok Breaking
Cette fonction peut être particulièrement utile si vous avez beaucoup de chaînes à concaténer :
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Résultat :
Red, Green, Orange, Blue
Dans ce cas, il vous suffit de spécifier le séparateur une seule fois.
Les SGBDR qui ont un CONCAT_WS()
incluent MySQL, MariaDB, SQL Server et PostgreSQL.
SQLite et Oracle n'ont pas de CONCAT_WS()
fonctionnent, mais ils font avoir un opérateur de concaténation de chaînes (voir ci-dessous).
L'opérateur de concaténation de chaînes
La plupart des SGBDR incluent un opérateur de concaténation de chaînes qui concatène ses opérandes.
Si vous utilisez SQLite, c'est votre seule option.
Exemple :
SELECT 'Spy' || 'craft';
Résultat :
Spycraft
Notez que dans MySQL, vous devrez d'abord activer l'opérateur de concaténation de canal.
Il en va de même pour MariaDB.
SQL Server
L'exemple ci-dessus ne fonctionnera pas dans SQL Server. Dans SQL Server, utilisez le signe plus (+
) opérateur de concaténation de chaîne :
SELECT 'Spy' + 'craft';
Résultat :
Spycraft