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: