Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm LTRIM () trong Oracle

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 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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước tối đa của VARCHAR2 trong PL / SQL và SQL là bao nhiêu?

  2. Trục động trong sql oracle

  3. Làm thế nào để xác thực số thẻ tín dụng và xác định loại thẻ bằng PL / SQL?

  4. Cập nhật các cột có giá trị Null

  5. Loại dữ liệu bản ghi dựa trên con trỏ với con trỏ trả về nhiều giá trị trong cơ sở dữ liệu Oracle