Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction LTRIM() dans Oracle

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 ])

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: