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: