W Oracle LTRIM()
funkcja pozwala przyciąć lewą część 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:
LTRIM(char [, set ])
Gdzie char
i set
może być dowolnym typem danych CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
lub NCLOB
.
LTRIM
usuwa z lewego 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 prosty przykład do zademonstrowania:
SELECT LTRIM(' Cat')
FROM DUAL;
Wynik:
LTRIM('CAT') _______________ Cat
W tym przypadku nie określiłem, które znaki należy przyciąć, więc każdy pojedynczy odstęp został przycięty z lewej części ciągu.
Oto znowu w porównaniu z oryginalnym (niewypełnionym) ciągiem:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Wynik:
'CAT' ___________ Cat Cat
Określ postać
W tym przykładzie określam znak do przycięcia:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Wynik:
LTRIM('...CAT...','.') _________________________ Cat...
Widzimy więc, że postać została przycięta z lewej strony, ale nie z prawej. Aby przyciąć prawą stronę, użyj RTRIM()
lub TRIM()
.
Zauważ, że LTRIM()
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 LTRIM('...A...Cat', '.')
FROM DUAL;
Wynik:
LTRIM('...A...CAT','.') __________________________ A...Cat
Jeśli jednak uwzględnimy A
w zestawie, to otrzymujemy inny wynik:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Wynik:
LTRIM('...A...CAT','.A') ___________________________ Cat
Przykład bazy danych
Oto przykład przycinania lewej części wartości w kolumnie bazy danych:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Wynik:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Wartości puste
Jeśli którykolwiek z argumentów jest null
wynik to null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Wynik:
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(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 LTRIM(' Cat', '')
FROM DUAL;
Wynik:
LTRIM('CAT','') __________________ null
Ale dodanie pojedynczej spacji do pustego ciągu zmienia to i usuwa wszelkie spacje z lewej strony ciągu:
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Wynik:
LTRIM('CAT','') __________________ Cat
Nieprawidłowa liczba argumentów
Wywołanie LTRIM()
bez przekazywania żadnych argumentów zwraca błąd:
SELECT LTRIM()
FROM DUAL;
Wynik:
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:
A przekazanie niewłaściwej liczby argumentów skutkuje błędem:
SELECT LTRIM('Cat', 1, '>')
FROM DUAL;
Wynik:
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: