SQL TRIM()

Dans le langage SQL la fonction TRIM() permet de supprimer des caractères au début et en fin d’une chaîne de caractère. Le plus souvent la fonction TRIM() permet de supprimer les caractères invisibles, c’est-à-dire les caractères tels que l’espace, la tabulation, le retour à la ligne ou bien même le retour chariot. Une telle fonction peut se révéler utile pour économiser de l’espace dans une base de données ou pour afficher proprement des données.

Syntaxe

L’utilisation la plus courante consiste a supprimer les caractères invisibles en début et fin d’une chaîne de caractère en utilisant la syntaxe suivante:

SELECT TRIM('   Exemple   ');

Le retour de cette fonction permet d’obtenir uniquement le mot “Exemple” sans les espaces de début et de fin.

Il est intéressant de savoir que dans certains Système de Gestion de Base de Données (SGBD) tel que MySQL ou PostgreSQL cette fonction peut supprimer certains caractères spécifiques.

MySQL, PostgreSQL, Firebird et Oracle

Supprimer un caractère spécifique en début et en fin de chaîne :

TRIM(BOTH 'x' FROM 'xxxExemplexxx');

Résultat : “Exemple”

Supprimer un caractère spécifique uniquement en début de chaîne :

TRIM(LEADING 'x' FROM 'xxxExemplexxx');

Résultat : “Exemplexxx”

Supprimer un caractère spécifique uniquement en début de chaîne :

TRIM(TRAILING 'x' FROM 'xxxExemplexxx');

Résultat : “xxxExemple”

SQLite

Supprimer un caractère spécifique en début et en fin de chaîne :

TRIM('x', 'xxxExemplexxx');

Résultat : Exemple

Exemple

Imaginons une table qui possède des messages quelconques. Ces messages peuvent contenir des espaces ou retour à la ligne en début et fin de chaîne.

Table message :

iddate_ajoutcontenu
12013-07-11 Bonjour, ceci est un message de test.

22013-07-18

Ceci est une réponse avec des caractères "invisibles" au début et à la fin.

32013-08-02
Encore un autre message.
42013-08-29Dernier message avec un retour à la ligne.

Il est possible d’utiliser une requête pour récupérer l’identifiant, la date et le message sans les caractères invisibles au début et à la fin. La requête SQL suivant permet de supprimer les espaces de la colonne “contenu”:

SELECT id, date_ajout, TRIM(contenu) AS contenu_trim
FROM message

Résultats :

iddate_ajoutcontenu_trim
12013-07-11Bonjour, ceci est un message de test.
22013-07-18Ceci est une réponse avec des caractères "invisibles" au début et à la fin.
32013-08-02Encore un autre message.
42013-08-29Dernier message avec un retour à la ligne.

En savoir plus

Il existe 2 autres fonctions très similaires pour supprimer des caractères en début et fin de table.

  • LTRIM() : supprimer des caractères en début de chaîne
  • RTRIM() : supprimer des caractères en fin de chaîne
Partager