Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione LTRIM() in Oracle

In Oracle, il LTRIM() La funzione consente di tagliare la parte sinistra di una stringa. Per impostazione predefinita, taglia lo spazio bianco, ma puoi facoltativamente specificare uno o più caratteri diversi da ritagliare.

Sintassi

La sintassi è questa:

LTRIM(char [, set ])

Dove char e set può essere uno qualsiasi dei tipi di dati CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB o NCLOB .

LTRIM rimuove dall'estremità sinistra di char tutti i caratteri contenuti nel set . Se non specifichi set , quindi il valore predefinito è un singolo spazio vuoto.

Esempio

Ecco un semplice esempio da dimostrare:

SELECT LTRIM('     Cat')
FROM DUAL;

Risultato:

   LTRIM('CAT') 
_______________ 
Cat            

In questo caso non ho specificato quale/i carattere/i tagliare, quindi ogni singolo spazio vuoto è stato tagliato dalla parte sinistra della stringa.

Eccolo di nuovo rispetto alla stringa originale (non riempita):

SELECT '     Cat'
FROM DUAL
UNION ALL
SELECT LTRIM('     Cat')
FROM DUAL;

Risultato:

      'CAT' 
___________ 
     Cat    
Cat        

Specifica un carattere

In questo esempio specifico un carattere da ritagliare:

SELECT LTRIM('...Cat...', '.')
FROM DUAL;

Risultato:

   LTRIM('...CAT...','.') 
_________________________ 
Cat...                    

Quindi possiamo vedere che il personaggio è stato tagliato dal lato sinistro ma non dal lato destro. Per tagliare il lato destro, usa RTRIM() o TRIM() .

Nota che LTRIM() taglia solo il personaggio/i nel set up fino a quando non c'è un personaggio che non è nel set. Ecco un esempio di cosa intendo:

SELECT LTRIM('...A...Cat', '.')
FROM DUAL;

Risultato:

   LTRIM('...A...CAT','.') 
__________________________ 
A...Cat                   

Tuttavia, se includiamo A nel set, quindi otteniamo un risultato diverso:

SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;

Risultato:

   LTRIM('...A...CAT','.A') 
___________________________ 
Cat                        

Esempio di database

Ecco un esempio di taglio della parte sinistra dei valori in una colonna del database:

SELECT 
    country_name,
    LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;

Risultato:

   COUNTRY_NAME     TRIMMED 
_______________ ___________ 
Argentina       gentina     
Australia       ustralia    
Belgium         Belgium     
Brazil          Brazil      
Canada          Canada     

Valori Nulli

Se uno qualsiasi degli argomenti è null il risultato è null :

SET NULL 'null';

SELECT 
    LTRIM(null, 3),
    LTRIM(' Cat', null),
    LTRIM(null, null)
FROM DUAL;

Risultato:

   LTRIM(NULL,3)    LTRIM('CAT',NULL)    LTRIM(NULL,NULL) 
________________ ____________________ ___________________ 
null             null                 null               

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Tagliare le stringhe vuote

Il passaggio di una stringa vuota come secondo argomento restituisce null :

SET NULL 'null';

SELECT LTRIM('   Cat', '')
FROM DUAL;

Risultato:

   LTRIM('CAT','') 
__________________ 
null              

Ma l'aggiunta di un singolo spazio alla stringa vuota cambia e taglia gli spazi vuoti a sinistra della stringa:

SELECT LTRIM('   Cat', ' ')
FROM DUAL;

Risultato:

   LTRIM('CAT','') 
__________________ 
Cat               

Conteggio argomenti errato

Chiamando LTRIM() senza passare alcun argomento restituisce un errore:

SELECT LTRIM()
FROM DUAL;

Risultato:

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:

E il passaggio del numero errato di argomenti genera un errore:

SELECT LTRIM('Cat', 1, '>')
FROM DUAL;

Risultato:

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: