I MariaDB, LPAD()
er en indbygget strengfunktion, der udfylder den venstre del af en streng med et bestemt antal tegn.
For eksempel kan du bruge LPAD()
at polstre den venstre del af en streng med mellemrum. Eller du kan udfylde et tal med indledende nuller.
Syntaks
Syntaksen ser sådan ud:
LPAD(str, len [, padstr])
Hvor str
er strengen, der skal udfyldes, og len
er antallet af tegn, der skal udfyldes strengen til. Bemærk, at dette ikke er mængden af udfyldning i sig selv, det er det samlede antal tegn, som den returnerede streng vil have, efter at den er blevet polstret.
padstr
er et valgfrit argument, der specificerer, hvilket tegn der skal bruges til udfyldningen.
Eksempel
Her er et grundlæggende eksempel:
SELECT LPAD('Lion', 8);
Resultat:
+-----------------+ | LPAD('Lion', 8) | +-----------------+ | Lion | +-----------------+
I dette tilfælde specificerede vi ikke et tredje argument (til udfyldningstegn), og derfor blev der brugt et mellemrum. Mellemrumstegnet er standardtegnet.
Angiv et udfyldningstegn
Her er et eksempel, der bruger et tredje argument. Dette angiver, hvilket tegn der skal bruges til udfyldningen:
SELECT LPAD('Lion', 8, '.');
Resultat:
+----------------------+ | LPAD('Lion', 8, '.') | +----------------------+ | ....Lion | +----------------------+
Prikkerne gør det muligt for os at se polstringen tydeligere.
Udfyldningsnumre
Her er et eksempel på udfyldning af et tal med nuller:
SELECT LPAD(7, 3, 0);
Resultat:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
Padding mindre end den originale streng
Hvis det andet argument er mindre end den oprindelige streng, tilføjes ingen udfyldning, og den oprindelige streng forkortes til det angivne antal tegn:
SELECT LPAD('Lion', 2);
Resultat:
+-----------------+ | LPAD('Lion', 2) | +-----------------+ | Li | +-----------------+
Databaseeksempler
Her er et eksempel på udfyldning af den venstre del af værdierne i en databasekolonne:
SELECT
LPAD(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 | +-----------------+---------------+
Her er et andet eksempel, der udfylder en priskolonne:
SELECT
ProductId,
ProductPrice,
LPAD(ProductPrice, 8, 0)
FROM Products;
Resultat:
+-----------+--------------+--------------------------+ | 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 | +-----------+--------------+--------------------------+
Nul-argumenter
Hvis nogen (eller alle) af argumenterne er null
, LPAD()
funktion returnerer null
:
SELECT
LPAD(null, 10, '.'),
LPAD('Coffee', null, '.'),
LPAD('Coffee', 10, null);
Resultat:
+---------------------+---------------------------+--------------------------+ | LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Oracle Mode
Når ikke kører i Oracle-tilstand, hvis resultatet er tomt (dvs. det har en længde på nul), er resultatet en tom streng.
Men når du kører i Oracle-tilstand, er resultatet null
.
Her er den i standardtilstand (dvs. ikke). i Oracle-tilstand):
SELECT LPAD('', 0);
Resultat:
+-------------+ | LPAD('', 0) | +-------------+ | | +-------------+
Lad os nu skifte til Oracle-tilstand:
SET SQL_MODE=ORACLE;
Og kør koden igen:
SELECT LPAD('', 0);
Resultat:
+-------------+ | LPAD('', 0) | +-------------+ | NULL | +-------------+
Manglende argumenter
Kalder LPAD()
uden mindst to argumenter resulterer i en fejl:
SELECT LPAD('Coffee');
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'
Det samme sker, når du kalder LPAD()
uden nogen argumenter:
SELECT LPAD();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'