V MariaDB, RPAD() je vestavěná funkce řetězce, která doplní pravou část řetězce určitým počtem zadaných znaků.
Můžete například použít RPAD() k vyplnění pravé části provázku tečkami.
Syntaxe
Syntaxe vypadá takto:
RPAD(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
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3"; Výsledek:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Znak mezery je výchozí znak. Pokud tedy neuvedete třetí argument, použije se mezera. V tomto případě jsme nespecifikovali třetí argument, a tak byla použita mezera.
Tento příklad vrátí tři sloupce. Udělal jsem to, abych vám usnadnil vidět účinek RPAD() jasněji. Výplň má za následek posunutí šířky sloupce na zadanou délku výplně.
V tomto případě první dva sloupce používají dvě různé délky výplně a třetí je původní (nevycpaný) řetězec.
Určení znaku výplně
Zde je příklad, který používá třetí argument. Toto určuje, jaký znak se má použít pro výplň:
SELECT RPAD('Fire', 15, '.'); Výsledek:
+-----------------------+
| RPAD('Fire', 15, '.') |
+-----------------------+
| Fire........... |
+-----------------------+ Tečky nám umožňují vidět výplň jasněji.
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 RPAD('Enlightenment', 7); Výsledek:
+--------------------------+
| RPAD('Enlightenment', 7) |
+--------------------------+
| Enlight |
+--------------------------+ Příklad databáze
Zde je příklad vyplnění pravé části hodnot ve sloupci databáze:
SELECT
RPAD(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 | +-----------------+---------------+
Nulové argumenty
Pokud jsou některé (nebo všechny) argumenty null , RPAD() funkce vrací null :
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null); Výsledek:
+---------------------+---------------------------+--------------------------+
| RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('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 RPAD('', 0); Výsledek:
+-------------+
| RPAD('', 0) |
+-------------+
| |
+-------------+ Nyní přejdeme do režimu Oracle:
SET SQL_MODE=ORACLE; A spusťte kód znovu:
SELECT RPAD('', 0); Výsledek:
+-------------+
| RPAD('', 0) |
+-------------+
| NULL |
+-------------+ Chybí argumenty
Volání RPAD() bez alespoň dvou argumentů vede k chybě:
SELECT RPAD('Coffee'); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
Totéž se stane při volání RPAD() bez jakýchkoli argumentů:
SELECT RPAD(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'