Aller au contenu
Fonctions SQL

Fonctions texte

Les fonctions texte nettoient, découpent et assemblent les chaînes : mettre en majuscules, retirer des espaces, extraire un domaine d'e-mail. Indispensables avant de comparer ou de dédoublonner.

  • UPPER
  • LOWER
  • TRIM
  • LENGTH
  • SUBSTR
  • INSTR
  • REPLACE
  • concaténation

Syntaxe

Modèle
UPPER(t)  LOWER(t)  TRIM(t)  LENGTH(t)SUBSTR(t, debut, longueur)  INSTR(t, motif)  REPLACE(t, ancien, nouveau)t1 || t2   -- concaténation

Exemple

Exemple concret
SELECT name,       UPPER(name) AS nom_majuscules,       SUBSTR(email, 1, INSTR(email, '@') - 1) AS identifiant,       SUBSTR(email, INSTR(email, '@') + 1) AS domaine,       LENGTH(name) AS longueurFROM customersWHERE city = 'Lyon'ORDER BY name;-- Jeu de données : boutique-- Résultat attendu :-- Emma Dubois | EMMA DUBOIS | emma | email.com | 11-- Nora Petit | NORA PETIT | nora | email.com | 10

À retenir

  1. SQLite concatène avec || : 'Client : ' || name. SQL Server utilise +, et CONCAT() existe dans SQLite 3.44+, PostgreSQL, MySQL et SQL Server.
  2. SUBSTR compte à partir de 1. INSTR renvoie la position du motif, ou 0 s'il est absent : protégez-vous avec CASE WHEN INSTR(email, '@') > 0.
  3. Piège : sans extension ICU, UPPER et LOWER de SQLite ne traitent que les lettres ASCII : UPPER('Léa') donne 'LéA'. PostgreSQL convertit correctement les accents.
  4. Piège : NULL || 'texte' vaut NULL, une seule valeur manquante efface toute la chaîne. Protégez chaque morceau avec COALESCE, ou utilisez CONCAT, qui ignore les NULL.

Voir aussi