W Oracle RTRIM()
funkcja umożliwia przycięcie prawej części struny. Domyślnie przycina białe znaki, ale możesz opcjonalnie określić inny znak lub znaki do przycięcia.
Składnia
Składnia wygląda tak:
RTRIM(char [, set ])
Gdzie char
i set
może być dowolnym typem danych CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
lub NCLOB
.
RTRIM
usuwa z prawego końca char
wszystkie znaki zawarte w set
. Jeśli nie określisz set
, to domyślnie jest to pojedyncze puste miejsce.
Przykład
Oto przykład:
SELECT RTRIM('Cat ')
FROM DUAL;
Wynik:
RTRIM('CAT') _______________ Cat
Tutaj nie określiłem, które znaki należy przyciąć, więc każdy pojedynczy odstęp został odcięty od prawej części ciągu.
Nie jest łatwo zobaczyć efekt powyższego przykładu.
Oto kolejny przykład, w którym ciąg jest łączony z innym ciągiem, porównując wynik z oryginalnym (nieprzyciętym) ciągiem:
SELECT 'Cat ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat ') || 'Food'
FROM DUAL;
Wynik:
'CAT'||'FOOD' ________________ Cat Food CatFood
Określ postać
W tym przykładzie określam znak do przycięcia. Ułatwia to zobaczenie efektu:
SELECT RTRIM('...Cat...', '.')
FROM DUAL;
Wynik:
RTRIM('...CAT...','.') _________________________ ...Cat
Widzimy więc, że postać została przycięta z prawej strony, ale nie z lewej. Aby przyciąć lewą stronę, użyj LTRIM()
lub TRIM()
.
Zauważ, że RTRIM()
przycina tylko postać / znaki w zestawie, dopóki nie pojawi się postać, której nie ma w zestawie. Oto przykład tego, co mam na myśli:
SELECT RTRIM('Cat...B...', '.')
FROM DUAL;
Wynik:
RTRIM('CAT...B...','.') __________________________ Cat...B
Jeśli jednak uwzględnimy B
w zestawie, to otrzymujemy inny wynik:
SELECT RTRIM('Cat...B...', '.B')
FROM DUAL;
Wynik:
RTRIM('CAT...B...','.B') ___________________________ Cat
Przykład bazy danych
Oto przykład przycinania prawej części wartości w kolumnie bazy danych:
SELECT
country_name,
RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Wynik:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina Argenti Australia Australi Belgium Belgium Brazil Brazil Canada Canad
Wartości puste
Jeśli jakikolwiek argument ma wartość null
wynik to null
:
SET NULL 'null';
SELECT
RTRIM(null, 3),
RTRIM('Cat ', null),
RTRIM(null, null)
FROM DUAL;
Wynik:
RTRIM(NULL,3) RTRIM('CAT',NULL) RTRIM(NULL,NULL) ________________ ____________________ ___________________ null null null
Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null
występuje w wyniku polecenia SQL SELECT
oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Przycinanie pustych ciągów
Przekazanie pustego ciągu jako drugiego argumentu powoduje null
:
SET NULL 'null';
SELECT RTRIM('Cat ', '')
FROM DUAL;
Wynik:
RTRIM('CAT','') __________________ null
Ale dodanie pojedynczej spacji do pustego ciągu zmienia to i usuwa wszelkie spacje z prawej strony ciągu:
SELECT RTRIM('Cat ', ' ')
FROM DUAL;
Wynik:
RTRIM('CAT','') __________________ Cat
Nieprawidłowa liczba argumentów
Wywołanie RTRIM()
bez przekazywania żadnych argumentów zwraca błąd:
SELECT RTRIM()
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT RTRIM() 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:
A przekazanie niewłaściwej liczby argumentów skutkuje błędem:
SELECT RTRIM('Cat', 1, '>')
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT RTRIM('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: