Di MariaDB, RPAD()
adalah fungsi string bawaan yang melapisi bagian kanan string dengan sejumlah karakter tertentu.
Misalnya, Anda dapat menggunakan RPAD()
untuk melapisi bagian kanan string dengan titik-titik.
Sintaks
Sintaksnya seperti ini:
RPAD(str, len [, padstr])
Dimana str
adalah string untuk pad, dan len
adalah jumlah karakter untuk memasukkan string. Perhatikan bahwa ini bukan jumlah padding itu sendiri, melainkan jumlah total karakter yang akan dimiliki string yang dikembalikan setelah diisi.
padstr
adalah argumen opsional yang menentukan karakter mana yang akan digunakan untuk padding.
Contoh
Berikut ini contoh dasarnya:
SELECT
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Hasil:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Karakter spasi adalah karakter default. Oleh karena itu, jika Anda tidak menyertakan argumen ketiga, spasi digunakan. Dalam hal ini, kami tidak menentukan argumen ketiga, sehingga spasi digunakan.
Contoh ini mengembalikan tiga kolom. Saya melakukan itu untuk memudahkan Anda melihat efek RPAD()
lebih jelas. Padding memiliki efek mendorong lebar kolom ke panjang padding yang ditentukan.
Dalam hal ini, dua kolom pertama menggunakan dua panjang padding yang berbeda, dan yang ketiga adalah string asli (tidak diisi).
Tentukan Karakter Padding
Berikut adalah contoh yang menggunakan argumen ketiga. Ini menentukan karakter apa yang akan digunakan untuk padding:
SELECT RPAD('Fire', 15, '.');
Hasil:
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Titik-titik memungkinkan kita untuk melihat padding lebih jelas.
Padding Lebih Kecil dari String Asli
Jika argumen kedua kurang dari string asli, maka tidak ada padding yang ditambahkan, dan string asli dipersingkat menjadi jumlah karakter yang ditentukan:
SELECT RPAD('Enlightenment', 7);
Hasil:
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Contoh Basis Data
Berikut ini contoh padding bagian kanan nilai dalam kolom database:
SELECT
RPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Hasil:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | Fluffy......... | Fluffy | | Fetch.......... | Fetch | | Scratch........ | Scratch | | Wag............ | Wag | | Tweet.......... | Tweet | | Fluffy......... | Fluffy | | Bark........... | Bark | | Meow........... | Meow | +-----------------+---------------+
Argumen Null
Jika salah satu (atau semua) argumen adalah null
, RPAD()
fungsi mengembalikan null
:
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Hasil:
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Mode Oracle
Ketika tidak berjalan dalam mode Oracle, jika hasilnya kosong (yaitu memiliki panjang nol) hasilnya adalah string kosong.
Namun, saat dijalankan dalam mode Oracle, hasilnya adalah null
.
Ini dia dalam mode default (yaitu tidak dalam mode Oracle):
SELECT RPAD('', 0);
Hasil:
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Sekarang mari kita beralih ke mode Oracle:
SET SQL_MODE=ORACLE;
Dan jalankan kembali kodenya:
SELECT RPAD('', 0);
Hasil:
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Argumen Tidak Ada
Memanggil RPAD()
tanpa setidaknya dua argumen menghasilkan kesalahan:
SELECT RPAD('Coffee');
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
Hal yang sama terjadi saat memanggil RPAD()
tanpa argumen:
SELECT RPAD();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'