Catégories :

Fonctions de chaîne et fonctions binaires (Général)

LTRIM

Supprime les caractères d’en-tête, y compris les espaces, d’une chaîne.

Voir aussi :

RTRIM , TRIM

Syntaxe

LTRIM( <expr> [, <characters> ] )

Arguments

expr

L’expression de chaîne à couper.

caractères

Un ou plusieurs caractères à supprimer du côté gauche de expr.

La valeur par défaut est ' ' (un seul caractère d’espacement), c’est-à-dire que si aucun caractère n’est spécifié, seuls les espaces sont supprimés.

Notes sur l’utilisation

  • Les caractères dans caractères peuvent être spécifiés dans n’importe quel ordre.

  • Pour supprimer les espaces, les caractères doivent être explicitement inclus dans l’argument. Par exemple, ' $.' supprime tous les espaces, les signes dollar et les points précédants de la chaîne de saisie.

    Notez que cela ne supprime pas les autres caractères d’espacement (caractères de tabulation, caractères de fin de ligne, etc.), qui doivent également être spécifiés explicitement.

Détails du classement

Le classement est pris en charge lorsque le deuxième argument facultatif est omis ou lorsqu’il ne contient que des espaces blancs constants.

La spécification de classement de la valeur renvoyée est identique à la spécification de classement du premier argument.

Exemples

Supprimez les caractères “0” et “#” d’une chaîne :

SELECT LTRIM('#000000123', '0#');
+---------------------------+
| LTRIM('#000000123', '0#') |
|---------------------------|
| 123                       |
+---------------------------+

Supprimer les premiers espaces vides des chaînes, y compris les chaînes ne contenant pas de caractère ASCII. Cet exemple comprend les chaînes de caractères > et < pour vous aider à visualiser les espaces :

SELECT CONCAT('>', CONCAT(v, '<')), CONCAT('>', CONCAT(LTRIM(v), '<')) FROM tr;

-----------------------------+------------------------------------+
 concat('>', concat(v, '<')) | concat('>', concat(ltrim(v), '<')) |
-----------------------------+------------------------------------+
 >  <                        | ><                                 |
 >  asd  <                   | >asd  <                            |
 >  asd<                     | >asd<                              |
 >  éché, la lé  <           | >éché, la lé  <                    |
 > <                         | ><                                 |
 ><                          | ><                                 |
 >asd  <                     | >asd  <                            |
 [NULL]                      | [NULL]                             |
-----------------------------+------------------------------------+

Cet exemple est similaire au précédent, mais inclut des caractères « espaces » au-delà du caractère vide ; plus précisément, cela utilise les 6 caractères que le langage de programmation C considère comme des « espaces » :

Créez et remplissez une table :

CREATE TABLE c_compatible_whitespace (whitespace_char VARCHAR);
INSERT INTO c_compatible_whitespace (whitespace_char) SELECT 
    CHR(32) || -- Blank
    CHR(13) || -- Carriage Return
    CHR(12) || -- Form Feed
    CHR(10) || -- Line Feed
    CHR(11) || -- Vertical Tab
    CHR(09)    -- tab (aka Horizontal Tab)
    ;

CREATE TABLE t1 (V VARCHAR);
INSERT INTO t1 (v) VALUES
   ('NoBlanks'),
   (' OneLeadingBlank'),
   ('OneTrailingBlank '),
   (' OneLeadingAndOneTrailingBlank ')
   ;
INSERT INTO t1 (v) SELECT 
    (CHR(09) || -- tab (aka Horizontal Tab)
     CHR(10) || -- Line Feed
     CHR(11) || -- Vertical Tab
     CHR(12) || -- Form Feed
     CHR(13) || -- Carriage Return
     CHR(32)    -- Blank 
      || 'Leading whitespace'
    )
   ;

Voici le résultat (il n’est pas surprenant que certains des caractères d’espacement non vides rendent ce résultat un peu difficile à lire) :

SELECT '>' || v || '<' AS Original,
       '>' || LTRIM(v, (SELECT whitespace_char FROM c_compatible_whitespace)) || '<' AS LTrimmed
    FROM t1;
+-----------------------------------+----------------------------------+
| ORIGINAL                          | LTRIMMED                         |
|-----------------------------------+----------------------------------|
| >NoBlanks<                        | >NoBlanks<                       |
| > OneLeadingBlank<                | >OneLeadingBlank<                |
| >OneTrailingBlank <               | >OneTrailingBlank <              |
| > OneLeadingAndOneTrailingBlank < | >OneLeadingAndOneTrailingBlank < |
| >	                                                                      | >Leading whitespace<             |
| 
 Leading whitespace<              |                                  |
+-----------------------------------+----------------------------------+