Trong Oracle, LTRIM()
hàm cho phép bạn cắt bớt phần bên trái của một chuỗi. Theo mặc định, nó cắt bớt khoảng trắng, nhưng bạn có thể tùy chọn chỉ định một ký tự hoặc các ký tự khác để cắt.
Cú pháp
Cú pháp như sau:
LTRIM(char [, set ])
Ở đâu char
và set
có thể là bất kỳ kiểu dữ liệu nào CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
hoặc NCLOB
.
LTRIM
xóa từ cuối bên trái của char
tất cả các ký tự có trong set
. Nếu bạn không chỉ định set
, sau đó nó được đặt mặc định là một ô trống duy nhất.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh:
SELECT LTRIM(' Cat')
FROM DUAL;
Kết quả:
LTRIM('CAT') _______________ Cat
Trong trường hợp này, tôi không chỉ định ký tự / s nào cần cắt và vì vậy mỗi ô trống đơn lẻ đã được cắt bớt khỏi phần bên trái của chuỗi.
Đây lại là chuỗi khi so sánh với chuỗi ban đầu (không đệm):
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Kết quả:
'CAT' ___________ Cat Cat
Chỉ định một ký tự
Trong ví dụ này, tôi chỉ định một ký tự để cắt:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Kết quả:
LTRIM('...CAT...','.') _________________________ Cat...
Vì vậy, chúng ta có thể thấy rằng nhân vật đã được cắt tỉa từ phía bên trái chứ không phải bên phải. Để cắt mặt phải, hãy sử dụng RTRIM()
hoặc TRIM()
.
Lưu ý rằng LTRIM()
chỉ cắt / s ký tự trong tập hợp cho đến khi có một ký tự không có trong tập hợp. Đây là một ví dụ về ý tôi muốn nói:
SELECT LTRIM('...A...Cat', '.')
FROM DUAL;
Kết quả:
LTRIM('...A...CAT','.') __________________________ A...Cat
Tuy nhiên, nếu chúng ta bao gồm A
trong tập hợp, sau đó chúng tôi nhận được một kết quả khác:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Kết quả:
LTRIM('...A...CAT','.A') ___________________________ Cat
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ về việc cắt bớt phần bên trái của các giá trị trong cột cơ sở dữ liệu:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Kết quả:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Giá trị rỗng
Nếu bất kỳ đối số nào là null
kết quả là null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Kết quả:
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(NULL,NULL) ________________ ____________________ ___________________ null null null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null
xảy ra do một SELECT
trong SQL tuyên bố.
Tuy nhiên, bạn có thể sử dụng SET NULL
để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null
nên được trả lại.
Cắt bỏ chuỗi trống
Chuyển một chuỗi trống làm đối số thứ hai dẫn đến null
:
SET NULL 'null';
SELECT LTRIM(' Cat', '')
FROM DUAL;
Kết quả:
LTRIM('CAT','') __________________ null
Nhưng việc thêm một khoảng trắng vào chuỗi trống sẽ thay đổi điều đó và cắt bớt bất kỳ khoảng trắng nào từ bên trái của chuỗi:
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Kết quả:
LTRIM('CAT','') __________________ Cat
Số lượng đối số không chính xác
Đang gọi LTRIM()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT LTRIM()
FROM DUAL;
Kết quả:
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:
Và việc chuyển sai số đối số dẫn đến lỗi:
SELECT LTRIM('Cat', 1, '>')
FROM DUAL;
Kết quả:
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: