MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как LPAD() работи в MariaDB

В MariaDB, LPAD() е вградена функция за низ, която допълва лявата част на низ с определен брой символи.

Например, можете да използвате LPAD() за допълване на лявата част на низ с интервали. Или можете да допълните число с водещи нули.

Синтаксис

Синтаксисът е така:

LPAD(str, len [, padstr])

Където str е низът към подложка и len е броят на знаците, до който трябва да се добави низът. Обърнете внимание, че това не е самото количество запълване, а общият брой знаци, които ще има върнатият низ, след като е бил допълнен.

padstr е незадължителен аргумент, който определя кой знак да се използва за допълването.

Пример

Ето един основен пример:

SELECT LPAD('Lion', 8);

Резултат:

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

В този случай не посочихме трети аргумент (за символа за допълване) и затова беше използвано интервал. Знакът за интервал е символът по подразбиране.

Посочете символ за подреждане

Ето пример, който използва трети аргумент. Това указва какъв знак да се използва за запълване:

SELECT LPAD('Lion', 8, '.');

Резултат:

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

Точките ни позволяват да виждаме подпълването по-ясно.

Числа за допълване

Ето пример за допълване на число с нули:

SELECT LPAD(7, 3, 0);

Резултат:

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

Подпълване, по-малко от оригиналния низ

Ако вторият аргумент е по-малък от оригиналния низ, тогава не се добавя допълване и оригиналният низ се съкращава до посочения брой знаци:

SELECT LPAD('Lion', 2);

Резултат:

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

Примери за бази данни

Ето пример за допълване на лявата част на стойностите в колона на база данни:

SELECT 
    LPAD(PetName, 15, '.') AS "Padded Name",
    PetName AS "Original Name"
FROM Pets;

Резултат:

+-----------------+---------------+
| Padded Name     | Original Name |
+-----------------+---------------+
| .........Fluffy | Fluffy        |
| ..........Fetch | Fetch         |
| ........Scratch | Scratch       |
| ............Wag | Wag           |
| ..........Tweet | Tweet         |
| .........Fluffy | Fluffy        |
| ...........Bark | Bark          |
| ...........Meow | Meow          |
+-----------------+---------------+

Ето още един пример, който допълва ценова колона:

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

Резултат:

+-----------+--------------+--------------------------+
| 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                 |
+-----------+--------------+--------------------------+

Нулеви аргументи

Ако някой (или всички) от аргументите са null , LPAD() функцията връща null :

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

Резултат:

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) |
+---------------------+---------------------------+--------------------------+
| NULL                | NULL                      | NULL                     |
+---------------------+---------------------------+--------------------------+

Режим Oracle

Когато не работи в режим на Oracle, ако резултатът е празен (т.е. има дължина нула), резултатът е празен низ.

Въпреки това, когато работите в режим на Oracle, резултатът е null .

Тук е в режим по подразбиране (т.е. не в режим на Oracle):

SELECT LPAD('', 0);

Резултат:

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

Сега нека преминем към режим на Oracle:

SET SQL_MODE=ORACLE;

И стартирайте кода отново:

SELECT LPAD('', 0);

Резултат:

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

Липсващи аргументи

Извикване на LPAD() без поне два аргумента води до грешка:

SELECT LPAD('Coffee');

Резултат:

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

Същото се случва и при извикване на LPAD() без никакви аргументи:

SELECT LPAD();

Резултат:

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. Надстройка до най-новата Jira с най-новата версия на MariaDB Server

  2. Преобразувайте резултатите от заявката в списък, разделен със запетая, в MariaDB

  3. Как MOD() работи в MariaDB

  4. Висока достъпност на базата данни за Camunda BPM с помощта на MySQL или MariaDB Galera Cluster

  5. Как да разположите MariaDB сървър в Docker контейнер