In MariaDB, LPAD()
is een ingebouwde tekenreeksfunctie die het linkergedeelte van een tekenreeks opvult met een bepaald aantal tekens.
U kunt bijvoorbeeld LPAD()
. gebruiken om het linkerdeel van een tekenreeks met spaties op te vullen. Of u kunt een getal invullen met voorloopnullen.
Syntaxis
De syntaxis gaat als volgt:
LPAD(str, len [, padstr])
Waar str
is de tekenreeks die moet worden ingevuld, en len
is het aantal tekens waarnaar de string moet worden ingevuld. Merk op dat dit niet de hoeveelheid opvulling zelf is, maar het totale aantal tekens dat de geretourneerde tekenreeks zal hebben nadat deze is opgevuld.
padstr
is een optioneel argument dat aangeeft welk teken moet worden gebruikt voor de opvulling.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT LPAD('Lion', 8);
Resultaat:
+-----------------+ | LPAD('Lion', 8) | +-----------------+ | Lion | +-----------------+
In dit geval hebben we geen derde argument gespecificeerd (voor het opvulteken), en dus werd een spatie gebruikt. Het spatieteken is het standaardteken.
Geef een opvulkarakter op
Hier is een voorbeeld dat een derde argument gebruikt. Dit specificeert welk teken voor de opvulling moet worden gebruikt:
SELECT LPAD('Lion', 8, '.');
Resultaat:
+----------------------+ | LPAD('Lion', 8, '.') | +----------------------+ | ....Lion | +----------------------+
Door de stippen kunnen we de opvulling duidelijker zien.
Opvulnummers
Hier is een voorbeeld van het opvullen van een getal met nullen:
SELECT LPAD(7, 3, 0);
Resultaat:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
Opvulling kleiner dan de originele string
Als het tweede argument kleiner is dan de oorspronkelijke tekenreeks, wordt er geen opvulling toegevoegd en wordt de oorspronkelijke tekenreeks ingekort tot het opgegeven aantal tekens:
SELECT LPAD('Lion', 2);
Resultaat:
+-----------------+ | LPAD('Lion', 2) | +-----------------+ | Li | +-----------------+
Databasevoorbeelden
Hier is een voorbeeld van het opvullen van het linkerdeel van de waarden in een databasekolom:
SELECT
LPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Resultaat:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | .........Fluffy | Fluffy | | ..........Fetch | Fetch | | ........Scratch | Scratch | | ............Wag | Wag | | ..........Tweet | Tweet | | .........Fluffy | Fluffy | | ...........Bark | Bark | | ...........Meow | Meow | +-----------------+---------------+
Hier is nog een voorbeeld dat een prijskolom opvult:
SELECT
ProductId,
ProductPrice,
LPAD(ProductPrice, 8, 0)
FROM Products;
Resultaat:
+-----------+--------------+--------------------------+ | 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 | +-----------+--------------+--------------------------+
Nullargumenten
Als een (of alle) argumenten null
. zijn , de LPAD()
functie retourneert null
:
SELECT
LPAD(null, 10, '.'),
LPAD('Coffee', null, '.'),
LPAD('Coffee', 10, null);
Resultaat:
+---------------------+---------------------------+--------------------------+ | LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Oracle-modus
Wanneer niet draait in Oracle-modus, als het resultaat leeg is (d.w.z. het heeft een lengte van nul), is het resultaat een lege string.
Als het echter in Oracle-modus wordt uitgevoerd, is het resultaat null
.
Hier is het in de standaardmodus (d.w.z. niet in Oracle-modus):
SELECT LPAD('', 0);
Resultaat:
+-------------+ | LPAD('', 0) | +-------------+ | | +-------------+
Laten we nu overschakelen naar de Oracle-modus:
SET SQL_MODE=ORACLE;
En voer de code opnieuw uit:
SELECT LPAD('', 0);
Resultaat:
+-------------+ | LPAD('', 0) | +-------------+ | NULL | +-------------+
Ontbrekende argumenten
LPAD()
. aanroepen zonder ten minste twee argumenten resulteert in een fout:
SELECT LPAD('Coffee');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'
Hetzelfde gebeurt bij het aanroepen van LPAD()
zonder argumenten:
SELECT LPAD();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'