V Oracle, RTRIM() funkce umožňuje oříznout pravou čá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:
RTRIM(char [, set ])
Kde char a set může být libovolný z datových typů CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB nebo NCLOB .
RTRIM odstraní z pravé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 příklad:
SELECT RTRIM('Cat ')
FROM DUAL; Výsledek:
RTRIM('CAT') ________________ Cat Zde jsem nespecifikoval, které znaky se mají oříznout, a tak byla každá jednotlivá mezera oříznuta z pravé části řetězce.
Není snadné vidět účinek výše uvedeného příkladu.
Zde je další příklad, kdy je řetězec zřetězen s jiným řetězcem, zatímco se porovnává výstup s původním (neoříznutým) řetězcem:
SELECT 'Cat ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat ') || 'Food'
FROM DUAL; Výsledek:
'CAT'||'FOOD' _________________ Krmivo pro kočky
Zadejte znak
V tomto příkladu specifikuji znak, který se má oříznout. Díky tomu je snazší vidět efekt:
SELECT RTRIM('...Cat...', '.')
FROM DUAL; Výsledek:
RTRIM('...CAT...','.') __________________________ ...Cat
Takže můžeme vidět, že postava byla oříznuta z pravé strany, ale ne z levé strany. Chcete-li oříznout levou stranu, použijte LTRIM() nebo TRIM() .
Všimněte si, že RTRIM() pouze ořízne postavu/y v sadě, dokud nebude postava, která v sadě není. Zde je příklad toho, co mám na mysli:
SELECT RTRIM('Cat...B...', '.')
FROM DUAL; Výsledek:
RTRIM('CAT...B...','.') ___________________________ Cat...B
Pokud však zahrneme B v sadě, pak dostaneme jiný výsledek:
SELECT RTRIM('Cat...B...', '.B')
FROM DUAL; Výsledek:
RTRIM('CAT...B...','.B') ____________________________ Kočka Příklad databáze
Zde je příklad oříznutí pravé části hodnot ve sloupci databáze:
SELECT
country_name,
RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY; Výsledek:
COUNTRY_NAME STŘIŽENO _______________ ___________ Argentina Argenti Austrálie Austrálie Belgie Belgie Brazílie Brazílie Kanada Kanada
Nulové hodnoty
Pokud je některý argument null výsledkem je null :
SET NULL 'null';
SELECT
RTRIM(null, 3),
RTRIM('Cat ', null),
RTRIM(null, null)
FROM DUAL; Výsledek:
RTRIM(NULL;3) RTRIM('CAT',NULL) RTRIM(NULL,NULL) ________________ _____________________ ___________________ null null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když null dochází v důsledku SQL SELECT 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ězec null 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 RTRIM('Cat ', '')
FROM DUAL;
Výsledek:
RTRIM('CAT','') __________________ null
Přidání jediné mezery k prázdnému řetězci to však změní a ořízne všechna prázdná místa zprava od řetězce:
SELECT RTRIM('Cat ', ' ')
FROM DUAL;
Výsledek:
RTRIM('CAT','') __________________ Kočka Nesprávný počet argumentů
Volání RTRIM() bez předání jakýchkoli argumentů vrátí chybu:
SELECT RTRIM()
FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT RTRIM()FROM DUALError 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 RTRIM('Cat', 1, '>')
FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT RTRIM('Cat', 1, '>')FROM DUALError 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: