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'