MariaDB memiliki RTRIM()
fungsi dan RTRIM_ORACLE()
fungsi. Kedua fungsi pada dasarnya melakukan hal yang sama. Tapi ada sedikit perbedaan.
Perbedaan
Perbedaannya adalah bagaimana setiap fungsi menangani string kosong:
RTRIM()
menghapus spasi tambahan dari string. Ketika melewati string kosong, hasilnya akan tergantung pada apakah Anda berada dalam mode Oracle atau tidak. Jika dalam mode Oracle, ia mengembalikannull
. Jika tidak, ia mengembalikan string kosong.RTRIM_ORACLE()
adalah sinonim untuk versi mode OracleRTRIM()
. Ini berperilaku sepertiRTRIM()
dalam mode Oracle (mengembalikannull
ketika melewati string kosong), bahkan saat tidak dalam mode Oracle.
Jadi RTRIM_ORACLE()
bekerja persis seperti RTRIM()
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
RTRIM(''),
RTRIM_ORACLE('');
Hasil:
+-----------+------------------+ | RTRIM('') | RTRIM_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 RTRIM()
mengembalikan string kosong, sementara RTRIM_ORACLE()
mengembalikan null
.
Mode Oracle
Sekarang mari kita atur ke mode Oracle dan jalankan kodenya lagi:
SET SQL_MODE=ORACLE;
SELECT
RTRIM(''),
RTRIM_ORACLE('');
Hasil:
+-----------+------------------+ | RTRIM('') | RTRIM_ORACLE('') | +-----------+------------------+ | NULL | NULL | +-----------+------------------+
Kita dapat melihat bahwa RTRIM()
sekarang berperilaku seperti RTRIM_ORACLE()
.
Jadi, dengan RTRIM()
, kita perlu secara eksplisit beralih ke mode Oracle sebelum kita membuatnya berperilaku seperti versi Oracle dari RTRIM()
.
RTRIM_ORACLE()
di sisi lain, tersedia dalam semua mode, sehingga kita tidak perlu beralih ke mode Oracle.