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

Cách LPAD () hoạt động trong MariaDB

Trong MariaDB, LPAD() là một hàm chuỗi được tích hợp sẵn để đệm phần bên trái của chuỗi bằng một số ký tự nhất định.

Ví dụ:bạn có thể sử dụng LPAD() để đệm phần bên trái của một chuỗi bằng dấu cách. Hoặc bạn có thể chèn một số bằng các số 0 ở đầu.

Cú pháp

Cú pháp như sau:

LPAD(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 LPAD('Lion', 8);

Kết quả:

+-----------------+
| LPAD('Lion', 8) |
+-----------------+
|     Lion        |
+-----------------+

Trong trường hợp này, chúng tôi không chỉ định đối số thứ ba (cho ký tự đệm) và do đó, một khoảng trắng đã được sử dụng. Ký tự khoảng trắng là ký tự mặc định.

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 LPAD('Lion', 8, '.');

Kết quả:

+----------------------+
| LPAD('Lion', 8, '.') |
+----------------------+
| ....Lion             |
+----------------------+

Các dấu chấm cho phép chúng ta nhìn thấy phần đệm rõ ràng hơn.

Số đệm

Dưới đây là một ví dụ về cách đệm một số bằng các số không:

SELECT LPAD(7, 3, 0);

Kết quả:

+---------------+
| LPAD(7, 3, 0) |
+---------------+
| 007           |
+---------------+

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 LPAD('Lion', 2);

Kết quả:

+-----------------+
| LPAD('Lion', 2) |
+-----------------+
| Li              |
+-----------------+

Ví dụ về Cơ sở dữ liệu

Dưới đây là một ví dụ về cách đệm phần bên trái của các giá trị trong cột cơ sở dữ liệu:

SELECT 
    LPAD(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          |
+-----------------+---------------+

Dưới đây là một ví dụ khác về cột giá:

SELECT 
    ProductId, 
    ProductPrice, 
    LPAD(ProductPrice, 8, 0) 
FROM Products;

Kết quả:

+-----------+--------------+--------------------------+
| ProductId | ProductPrice | LPAD(ProductPrice, 8, 0) |
+-----------+--------------+--------------------------+
|         1 |        25.99 | 00025.99                 |
|         2 |        25.99 | 00025.99                 |
|         3 |        14.75 | 00014.75                 |
|         4 |        11.99 | 00011.99                 |
|         5 |        33.49 | 00033.49                 |
|         6 |       245.00 | 00245.00                 |
|         7 |        55.99 | 00055.99                 |
|         8 |         9.99 | 00009.99                 |
+-----------+--------------+--------------------------+

Đối số rỗng

Nếu bất kỳ (hoặc tất cả) đối số null , LPAD() hàm trả về null :

SELECT 
    LPAD(null, 10, '.'),
    LPAD('Coffee', null, '.'),
    LPAD('Coffee', 10, null);

Kết quả:

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('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 LPAD('', 0);

Kết quả:

+-------------+
| LPAD('', 0) |
+-------------+
|             |
+-------------+

Bây giờ, hãy chuyển sang chế độ Oracle:

SET SQL_MODE=ORACLE;

Và chạy lại mã:

SELECT LPAD('', 0);

Kết quả:

+-------------+
| LPAD('', 0) |
+-------------+
| NULL        |
+-------------+

Thiếu đối số

Đang gọi LPAD() không có ít nhất hai đối số dẫn đến lỗi:

SELECT LPAD('Coffee');

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

Điều tương tự cũng xảy ra khi gọi LPAD() không có bất kỳ đối số nào:

SELECT LPAD();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ tạo một bảng nếu nó không tồn tại trong MariaDB

  2. Bắt đầu với ProxySQL - Hướng dẫn Cân bằng tải MySQL &MariaDB

  3. Hiểu các chỉ mục trong MySQL:Phần thứ ba

  4. Cách cài đặt MariaDB trên CentOS 8

  5. Đơn vị ngày và giờ MariaDB