MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB LTRIM() vs LTRIM_ORACLE():Apa Bedanya?

MariaDB memiliki LTRIM() fungsi dan LTRIM_ORACLE() fungsi. Kedua fungsi pada dasarnya melakukan hal yang sama. Tapi ada sedikit perbedaan.

Perbedaan

Perbedaannya adalah bagaimana setiap fungsi menangani string kosong:

  • LTRIM() menghilangkan spasi awal dari sebuah string. Ketika melewati string kosong, hasilnya akan tergantung pada apakah Anda berada dalam mode Oracle atau tidak. Jika dalam mode Oracle, ia mengembalikan null . Jika tidak, ia mengembalikan string kosong.
  • LTRIM_ORACLE() adalah sinonim untuk versi mode Oracle dari LTRIM() . Ini berperilaku seperti LTRIM() dalam mode Oracle (mengembalikan null ketika melewati string kosong), bahkan saat tidak dalam mode Oracle.

Jadi LTRIM_ORACLE() bekerja persis seperti LTRIM() ketika dalam mode Oracle. Tetapi ketika tidak dalam mode Oracle, satu-satunya perbedaan adalah bagaimana setiap fungsi menangani string kosong.

Contoh

Ini paling baik dijelaskan dengan sebuah contoh.

Mode Default

Berikut perbandingan fungsi-fungsi ini dalam mode default:

SET SQL_MODE=DEFAULT;
SELECT
    LTRIM(''),
    LTRIM_ORACLE('');

Hasil:

+-----------+------------------+
| LTRIM('') | LTRIM_ORACLE('') |
+-----------+------------------+
|           | NULL             |
+-----------+------------------+

Pertama, saya mengatur sistem saya ke mode default (meskipun mungkin sudah dalam mode default), lalu saya menjalankan kedua fungsi dengan string kosong.

Kita dapat melihat bahwa LTRIM() mengembalikan string kosong, sementara LTRIM_ORACLE() mengembalikan null .

Mode Oracle

Sekarang mari kita atur ke mode Oracle dan jalankan kodenya lagi:

SET SQL_MODE=ORACLE;
SELECT
    LTRIM(''),
    LTRIM_ORACLE('');

Hasil:

+-----------+------------------+
| LTRIM('') | LTRIM_ORACLE('') |
+-----------+------------------+
| NULL      | NULL             |
+-----------+------------------+

Kita dapat melihat bahwa LTRIM() sekarang berperilaku seperti LTRIM_ORACLE() .

Jadi, dengan LTRIM() , kita perlu secara eksplisit beralih ke mode Oracle sebelum kita membuatnya berperilaku seperti versi Oracle dari LTRIM() .

LTRIM_ORACLE() di sisi lain, tersedia dalam semua mode, sehingga kita tidak perlu beralih ke mode 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. Mengontrol Replication Failover untuk MySQL dan MariaDB Dengan Skrip Sebelum atau Setelah Failover

  2. MariaDB 10.6 dan NextCloud:COMPRESSED Row secara default hanya-baca

  3. Memantau Kinerja MariaDB di Cloud Hibrida

  4. DBaaS, cloud, dan perutean kueri transparan

  5. Cara Menginstal dan Mengamankan MariaDB di CentOS 7