Dans Oracle, le LTRIM()
La fonction vous permet de couper la partie gauche d'une chaîne. Par défaut, il supprime les espaces blancs, mais vous pouvez éventuellement spécifier un ou plusieurs caractères différents à supprimer.
Syntaxe
La syntaxe ressemble à ceci :
LTRIM(char [, set ])
Où char
et set
peut être l'un des types de données CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, ou NCLOB
.
LTRIM
supprime de l'extrémité gauche de char
tous les caractères contenus dans set
. Si vous ne spécifiez pas set
, alors il s'agit par défaut d'un seul blanc.
Exemple
Voici un exemple simple pour illustrer :
SELECT LTRIM(' Cat')
FROM DUAL;
Résultat :
LTRIM('CAT') _______________ Cat
Dans ce cas, je n'ai pas spécifié le ou les caractères à couper, et donc chaque blanc a été coupé à partir de la partie gauche de la chaîne.
La voici à nouveau par rapport à la chaîne d'origine (non rembourrée) :
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Résultat :
'CAT' ___________ Cat Cat
Spécifiez un caractère
Dans cet exemple, je spécifie un caractère à découper :
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Résultat :
LTRIM('...CAT...','.') _________________________ Cat...
Nous pouvons donc voir que le personnage a été coupé du côté gauche mais pas du côté droit. Pour couper le côté droit, utilisez RTRIM()
ou TRIM()
.
Notez que LTRIM()
ne coupe que le ou les caractères dans la configuration jusqu'à ce qu'il y ait un caractère qui ne soit pas dans la configuration. Voici un exemple de ce que je veux dire :
SELECT LTRIM('...A...Cat', '.')
FROM DUAL;
Résultat :
LTRIM('...A...CAT','.') __________________________ A...Cat
Cependant, si nous incluons A
dans l'ensemble, alors on obtient un résultat différent :
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Résultat :
LTRIM('...A...CAT','.A') ___________________________ Cat
Exemple de base de données
Voici un exemple de découpage de la partie gauche des valeurs dans une colonne de base de données :
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Résultat :
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Valeurs nulles
Si l'un des arguments est null
le résultat est null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Résultat :
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(NULL,NULL) ________________ ____________________ ___________________ null null null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null
se produit à la suite d'un SQL SELECT
déclaration.
Cependant, vous pouvez utiliser SET NULL
pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null
doit être retourné.
Rogner les chaînes vides
Passer une chaîne vide comme deuxième argument donne null
:
SET NULL 'null';
SELECT LTRIM(' Cat', '')
FROM DUAL;
Résultat :
LTRIM('CAT','') __________________ null
Mais ajouter un seul espace à la chaîne vide change cela et supprime tous les espaces vides à gauche de la chaîne :
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Résultat :
LTRIM('CAT','') __________________ Cat
Nombre d'arguments incorrects
Appel de LTRIM()
sans passer aucun argument renvoie une erreur :
SELECT LTRIM()
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT LTRIM() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Et passer le mauvais nombre d'arguments entraîne une erreur :
SELECT LTRIM('Cat', 1, '>')
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT LTRIM('Cat', 1, '>') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: