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: