Trong MariaDB, RPAD()
là một hàm chuỗi được tích hợp sẵn để đệm phần bên phải của chuỗi bằng một số nhất định của một ký tự được chỉ định.
Ví dụ:bạn có thể sử dụng RPAD()
để đệm phần bên phải của một chuỗi bằng các dấu chấm.
Cú pháp
Cú pháp như sau:
RPAD(str, len [, padstr])
Ở đâu str
là chuỗi ký tự và len
là số ký tự để đệm chuỗi. Lưu ý rằng đây không phải là số lượng của chính nó mà là tổng số ký tự mà chuỗi trả về sẽ có sau khi nó được đệm.
padstr
là một đối số tùy chọn chỉ định ký tự nào sẽ sử dụng cho phần đệm.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Kết quả:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Ký tự khoảng trắng là ký tự mặc định. Do đó, nếu bạn không bao gồm đối số thứ ba, thì một khoảng trắng sẽ được sử dụng. Trong trường hợp này, chúng tôi không chỉ định đối số thứ ba và do đó, một khoảng trắng đã được sử dụng.
Ví dụ này trả về ba cột. Tôi đã làm điều đó để giúp bạn dễ dàng thấy tác dụng của RPAD()
rõ ràng hơn. Phần đệm có tác dụng đẩy chiều rộng của cột ra bằng chiều dài phần đệm đã chỉ định.
Trong trường hợp này, hai cột đầu tiên sử dụng hai độ dài đệm khác nhau và cột thứ ba là chuỗi ban đầu (không đệm).
Chỉ định một ký tự đệm
Đây là một ví dụ sử dụng đối số thứ ba. Điều này chỉ định ký tự nào sẽ sử dụng cho phần đệm:
SELECT RPAD('Fire', 15, '.');
Kết quả:
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Các dấu chấm cho phép chúng ta nhìn thấy phần đệm rõ ràng hơn.
Padding nhỏ hơn chuỗi gốc
Nếu đối số thứ hai nhỏ hơn chuỗi ban đầu, thì không có khoảng đệm nào được thêm vào và chuỗi ban đầu được rút ngắn thành số ký tự được chỉ định:
SELECT RPAD('Enlightenment', 7);
Kết quả:
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ về cách đệm phần bên phải của các giá trị trong cột cơ sở dữ liệu:
SELECT
RPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Kết quả:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | Fluffy......... | Fluffy | | Fetch.......... | Fetch | | Scratch........ | Scratch | | Wag............ | Wag | | Tweet.......... | Tweet | | Fluffy......... | Fluffy | | Bark........... | Bark | | Meow........... | Meow | +-----------------+---------------+
Đối số rỗng
Nếu bất kỳ (hoặc tất cả) đối số null
, RPAD()
hàm trả về null
:
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Kết quả:
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Chế độ Oracle
Khi không đang chạy ở chế độ Oracle, nếu kết quả trống (tức là nó có độ dài bằng 0) thì kết quả là một chuỗi trống.
Tuy nhiên, khi chạy ở chế độ Oracle, kết quả là null
.
Đây là chế độ mặc định (tức là không trong chế độ Oracle):
SELECT RPAD('', 0);
Kết quả:
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Bây giờ, hãy chuyển sang chế độ Oracle:
SET SQL_MODE=ORACLE;
Và chạy lại mã:
SELECT RPAD('', 0);
Kết quả:
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Thiếu đối số
Gọi RPAD()
không có ít nhất hai đối số dẫn đến lỗi:
SELECT RPAD('Coffee');
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
Điều tương tự cũng xảy ra khi gọi RPAD()
không có bất kỳ đối số nào:
SELECT RPAD();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'