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

MariaDB RTRIM () so với RTRIM_ORACLE ():Sự khác biệt là gì?

MariaDB có RTRIM() và một RTRIM_ORACLE() hàm số. Về cơ bản, cả hai chức năng đều làm cùng một thứ. Nhưng có một sự khác biệt nhỏ.

Sự khác biệt

Sự khác biệt là cách mỗi hàm xử lý các chuỗi trống:

  • RTRIM() loại bỏ khoảng trắng ở cuối chuỗi khỏi một chuỗi. Khi truyền một chuỗi trống, kết quả sẽ phụ thuộc vào việc bạn có đang ở chế độ Oracle hay không. Nếu ở chế độ Oracle, nó trả về null . Nếu không, nó trả về một chuỗi trống.
  • RTRIM_ORACLE() là từ đồng nghĩa với phiên bản chế độ Oracle của RTRIM() . Nó hoạt động giống như RTRIM() trong chế độ Oracle (nó trả về null khi truyền một chuỗi trống), ngay cả khi không ở chế độ Oracle.

Vì vậy, RTRIM_ORACLE() hoạt động chính xác như RTRIM() khi ở chế độ Oracle. Nhưng khi không ở chế độ Oracle, điểm khác biệt duy nhất là cách mỗi hàm xử lý với các chuỗi trống.

Ví dụ

Điều này được giải thích tốt nhất bằng một ví dụ.

Chế độ mặc định

Dưới đây là so sánh các chức năng này ở chế độ mặc định:

SET SQL_MODE=DEFAULT;
SELECT
    RTRIM(''),
    RTRIM_ORACLE('');

Kết quả:

+-----------+------------------+
| RTRIM('') | RTRIM_ORACLE('') |
+-----------+------------------+
|           | NULL             |
+-----------+------------------+

Đầu tiên, tôi đặt hệ thống của mình ở chế độ mặc định (mặc dù có thể nó đã ở chế độ mặc định), sau đó tôi chạy cả hai hàm với một chuỗi trống.

Chúng ta có thể thấy rằng RTRIM() trả về một chuỗi trống, trong khi RTRIM_ORACLE() trả về null .

Chế độ Oracle

Bây giờ, hãy đặt nó ở chế độ Oracle và chạy lại mã:

SET SQL_MODE=ORACLE;
SELECT
    RTRIM(''),
    RTRIM_ORACLE('');

Kết quả:

+-----------+------------------+
| RTRIM('') | RTRIM_ORACLE('') |
+-----------+------------------+
| NULL      | NULL             |
+-----------+------------------+

Chúng ta có thể thấy rằng RTRIM() bây giờ hoạt động giống như RTRIM_ORACLE() .

Vì vậy, với RTRIM() , chúng tôi cần phải chuyển sang chế độ Oracle một cách rõ ràng trước khi chúng tôi làm cho nó hoạt động giống như phiên bản Oracle của RTRIM() .

RTRIM_ORACLE() mặt khác, có sẵn ở tất cả các chế độ, vì vậy nó giúp chúng ta không phải chuyển sang chế độ Oracle.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển cơ sở dữ liệu MariaDB sang trạng thái được mã hóa và không được mã hóa

  2. Cách UNIX_TIMESTAMP () hoạt động trong MariaDB

  3. Trừ số giây cho giá trị ngày giờ trong MariaDB

  4. Chạy ProxySQL dưới dạng Dịch vụ Kubernetes

  5. Laravel:Khóa được chỉ định quá dài; độ dài khóa tối đa là 767 byte