sql >> Databáze >  >> RDS >> MariaDB

Jak LPAD() funguje v MariaDB

V MariaDB, LPAD() je vestavěná funkce řetězce, která doplní levou část řetězce určitým počtem znaků.

Můžete například použít LPAD() k vyplnění levé části řetězce mezerami. Nebo můžete číslo doplnit nulami na začátku.

Syntaxe

Syntaxe vypadá takto:

LPAD(str, len [, padstr])

Kde str je řetězec k vyplnění a len je počet znaků, do kterých se má řetězec vyplnit. Všimněte si, že se nejedná o množství samotného odsazení, ale o celkový počet znaků, které bude mít vrácený řetězec po vyplnění.

padstr je volitelný argument, který určuje, který znak se má použít pro výplň.

Příklad

Zde je základní příklad:

SELECT LPAD('Lion', 8);

Výsledek:

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

V tomto případě jsme nespecifikovali třetí argument (pro znak výplně), a tak byla použita mezera. Výchozí znak je mezera.

Určení znaku výplně

Zde je příklad, který používá třetí argument. Toto určuje, jaký znak použít pro výplň:

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

Výsledek:

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

Tečky nám umožňují vidět výplň jasněji.

Čísla výplně

Zde je příklad vyplnění čísla nulami:

SELECT LPAD(7, 3, 0);

Výsledek:

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

Výplň menší než původní řetězec

Pokud je druhý argument menší než původní řetězec, nepřidá se žádná výplň a původní řetězec se zkrátí na zadaný počet znaků:

SELECT LPAD('Lion', 2);

Výsledek:

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

Příklady databáze

Zde je příklad vyplnění levé části hodnot ve sloupci databáze:

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

Výsledek:

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

Zde je další příklad, který vyplňuje sloupec ceny:

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

Výsledek:

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

Nulové argumenty

Pokud jsou některé (nebo všechny) argumenty null , LPAD() funkce vrací null :

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

Výsledek:

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

Režim Oracle

Když ne běžící v režimu Oracle, pokud je výsledek prázdný (tj. má délku nula), výsledkem je prázdný řetězec.

Při spuštění v režimu Oracle je však výsledkem null .

Zde je ve výchozím režimu (tj. ne v režimu Oracle):

SELECT LPAD('', 0);

Výsledek:

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

Nyní přejdeme do režimu Oracle:

SET SQL_MODE=ORACLE;

A spusťte kód znovu:

SELECT LPAD('', 0);

Výsledek:

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

Chybí argumenty

Volání LPAD() bez alespoň dvou argumentů vede k chybě:

SELECT LPAD('Coffee');

Výsledek:

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

Totéž se stane při volání LPAD() bez jakýchkoli argumentů:

SELECT LPAD();

Výsledek:

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

  1. MySQL - Význam PRIMARY KEY, UNIQUE KEY a KEY při společném použití při vytváření tabulky

  2. Jak vytvořit sekvenci v MySQL

  3. #1273 - Neznámé řazení:'utf8mb4_unicode_ci' cPanel

  4. Snadné upgrady s nulovými prostoji díky ClusterControl