I MariaDB, RPAD()
är en inbyggd strängfunktion som fyller den högra delen av en sträng med ett visst nummer av ett angivet tecken.
Du kan till exempel använda RPAD()
att vaddera den högra delen av ett snöre med prickar.
Syntax
Syntaxen ser ut så här:
RPAD(str, len [, padstr])
Där str
är strängen som ska fyllas och len
är antalet tecken som strängen ska fyllas på. Observera att detta inte är mängden utfyllnad i sig, utan det är det totala antalet tecken som den returnerade strängen kommer att ha efter att den har utfyllts.
padstr
är ett valfritt argument som anger vilket tecken som ska användas för utfyllnaden.
Exempel
Här är ett grundläggande exempel:
SELECT
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Resultat:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Mellanslagstecknet är standardtecknet. Därför, om du inte inkluderar ett tredje argument, används ett mellanslag. I det här fallet angav vi inte ett tredje argument, och därför användes ett mellanslag.
Detta exempel returnerar tre kolumner. Jag gjorde det för att göra det lättare för dig att se effekten av RPAD()
tydligare. Utfyllnaden har effekten att skjuta ut kolonnens bredd till den angivna utfyllnadslängden.
I det här fallet använder de två första kolumnerna två olika utfyllnadslängder, och den tredje är den ursprungliga (ostoppade) strängen.
Ange en utfyllnadstecken
Här är ett exempel som använder ett tredje argument. Detta anger vilket tecken som ska användas för utfyllnad:
SELECT RPAD('Fire', 15, '.');
Resultat:
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Prickarna gör att vi kan se vadderingen tydligare.
Utfyllning mindre än originalsträngen
Om det andra argumentet är mindre än den ursprungliga strängen läggs ingen utfyllnad till och den ursprungliga strängen förkortas till det angivna antalet tecken:
SELECT RPAD('Enlightenment', 7);
Resultat:
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Databasexempel
Här är ett exempel på utfyllnad av den högra delen av värdena i en databaskolumn:
SELECT
RPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Resultat:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | Fluffy......... | Fluffy | | Fetch.......... | Fetch | | Scratch........ | Scratch | | Wag............ | Wag | | Tweet.......... | Tweet | | Fluffy......... | Fluffy | | Bark........... | Bark | | Meow........... | Meow | +-----------------+---------------+
Nollargument
Om något (eller alla) av argumenten är null
, RPAD()
funktion returnerar null
:
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Resultat:
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Oracle Mode
När inte körs i Oracle-läge, om resultatet är tomt (dvs. det har en längd på noll) är resultatet en tom sträng.
Men när du kör i Oracle-läge är resultatet null
.
Här är den i standardläge (dvs inte i Oracle-läge):
SELECT RPAD('', 0);
Resultat:
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Låt oss nu byta till Oracle-läge:
SET SQL_MODE=ORACLE;
Och kör koden igen:
SELECT RPAD('', 0);
Resultat:
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Argument saknas
Anropar RPAD()
utan minst två argument resulterar i ett fel:
SELECT RPAD('Coffee');
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
Samma sak händer när du anropar RPAD()
utan några argument:
SELECT RPAD();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'