- Catégories :
LTRIM¶
Supprime les caractères d’en-tête, y compris les espaces, d’une chaîne.
Syntaxe¶
LTRIM( <expr> [, <characters> ] )
Arguments¶
expr
L’expression de chaîne à couper.
characters
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
characters
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< | | +-----------------------------------+----------------------------------+