sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer LPAD() i MariaDB

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'

  1. SQL undtagen

  2. Sådan administrerer du privilegier med roller i MySQL

  3. Effektiviteten af ​​forskellige fejlhåndteringsteknikker

  4. MySQL SELECT DISTINCT flere kolonner