Le langage de requête structuré (SQL) est un outil puissant et riche en fonctionnalités. Une fois les commandes essentielles maîtrisées, vous pouvez explorer des usages plus créatifs. Découvrez tout ce qu'il faut savoir sur la concaténation de chaînes en SQL.
Ces exemples utilisent PostgreSQL, mais ils s'adaptent facilement à d'autres dialectes SQL.
La concaténation consiste à joindre deux éléments. Comme en programmation, elle combine des chaînes : par exemple, prénom et nom de famille pour former un nom complet.
En SQL, c'est idéal pour fusionner des données en une seule chaîne. PHP utilise le point (.), JavaScript le plus (+). SQL emploie un opérateur dédié.
Exemple en pseudocode :
prenom = 'Joe'
nom_famille = 'Coburn'
nom_complet = prenom || nom_familleElle simplifie le code en réduisant les accès multiples aux données.
Simple et efficace ! PostgreSQL utilise l'opérateur ||. Adaptez la syntaxe selon votre SGBD (recherchez "concaténation [votre SGBD]").
Requête de base :
SELECT first_name, last_name, email FROM users_table;
Ajout de concaténation :
SELECT first_name || last_name AS full_name, email FROM users_table;
Problème : pas d'espace. Solution :
SELECT first_name || ' ' || last_name AS full_name, email FROM users_table;
L'opérateur || joint les éléments. Évitez les concaténations vides pour prévenir les erreurs :

SQL gère souvent chaînes, entiers et dates, mais pas les types complexes comme les tableaux :
SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table;Échec assuré. Privilégiez la simplicité ou un langage de programmation pour la logique complexe.
En clause WHERE :
SELECT first_name, last_name, email
FROM users_table
WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date;Concaténez pour former une date valide (::date en PostgreSQL). Attention : protégez contre l'injection SQL en production.
Piège des NULL :
SELECT first_name || ' ' || NULL AS full_name, email FROM users_table;
Résultat NULL. Utilisez COALESCE :
SELECT first_name || ' ' || COALESCE(last_name, 'Données manquantes') AS full_name, email FROM users_table;
Appliquez ces techniques à vos projets SQL. Partagez vos usages en commentaires !
[]