V Oracle je to LTRIM()
funkce umožňuje oříznout levou část řetězce. Ve výchozím nastavení ořízne prázdné místo, ale volitelně můžete zadat jiný znak nebo znaky, které chcete oříznout.
Syntaxe
Syntaxe vypadá takto:
LTRIM(char [, set ])
Kde char
a set
může být libovolný z datových typů CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
nebo NCLOB
.
LTRIM
odstraní z levého konce char
všechny znaky obsažené v set
. Pokud nezadáte set
, pak se jako výchozí použije jedna mezera.
Příklad
Zde je jednoduchý příklad k demonstraci:
SELECT LTRIM(' Cat')
FROM DUAL;
Výsledek:
LTRIM('CAT') _______________ Kočka
V tomto případě jsem nespecifikoval, které znaky se mají oříznout, a tak byl každý jednotlivý prázdný znak oříznut z levé části řetězce.
Zde je to opět při srovnání s původním (nevycpaným) řetězcem:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Výsledek:
'CAT' ___________ Cat Cat
Zadejte znak
V tomto příkladu specifikuji znak, který se má oříznout:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Výsledek:
LTRIM('...CAT...','.') __________________________ Cat...
Takže můžeme vidět, že postava byla oříznuta z levé strany, ale ne z pravé strany. Chcete-li oříznout pravou stranu, použijte RTRIM()
nebo TRIM()
.
Všimněte si, že LTRIM()
pouze ořízne postavu/y v sadě, dokud se neobjeví postava, která v sadě není. Zde je příklad toho, co mám na mysli:
SELECT LTRIM('...A...Cat', '.')
FROM DUAL;
Výsledek:
LTRIM('...A...CAT','.') __________________________ A...Cat
Pokud však zahrneme A
v sadě, pak dostaneme jiný výsledek:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Výsledek:
LTRIM('...A...CAT','.A') ____________________________ Kočka
Příklad databáze
Zde je příklad oříznutí levé části hodnot ve sloupci databáze:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Výsledek:
COUNTRY_NAME STŘIŽENO _______________ ___________ Argentina gentina Austrálie Austrálie Belgie Belgie Brazílie Brazílie Kanada Kanada
Nulové hodnoty
Pokud je některý z argumentů null
výsledkem je null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Výsledek:
LTRIM(NULL;3) LTRIM('CAT',NULL) LTRIM(NULL,NULL) ________________ _____________________ ___________________ nullVe výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když
null
dochází v důsledku SQLSELECT
prohlášení.Můžete však použít
SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězecnull
by měl být vrácen.Oříznutí prázdných řetězců
Předání prázdného řetězce jako druhého argumentu má za následek
null
:SET NULL 'null'; SELECT LTRIM(' Cat', '') FROM DUAL;
Výsledek:
LTRIM('CAT','') __________________ nullPřidání jediné mezery k prázdnému řetězci to však změní a ořízne všechna prázdná místa zleva od řetězce:
SELECT LTRIM(' Cat', ' ') FROM DUAL;
Výsledek:
LTRIM('CAT','') __________________ KočkaNesprávný počet argumentů
Volání
LTRIM()
bez předání jakýchkoli argumentů vrátí chybu:SELECT LTRIM() FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LTRIM()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00938:nedostatek argumentů pro funkci00938. 00000 - "nedostatek argumentů pro funkci"*Příčina:*Akce:A předání nesprávného počtu argumentů má za následek chybu:
SELECT LTRIM('Cat', 1, '>') FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LTRIM('Cat', 1, '>')FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00939:příliš mnoho argumentů pro funkci00939. 00000 - "příliš mnoho argumentů pro funkci"*Příčina:*Akce: