sql >> Databasteknik >  >> RDS >> MariaDB

Hur LPAD() fungerar i MariaDB

I MariaDB, LPAD() är en inbyggd strängfunktion som fyller den vänstra delen av en sträng med ett visst antal tecken.

Du kan till exempel använda LPAD() för att fylla den vänstra delen av ett snöre med mellanslag. Eller så kan du fylla på ett nummer med inledande nollor.

Syntax

Syntaxen ser ut så här:

LPAD(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 LPAD('Lion', 8);

Resultat:

+-----------------+
| LPAD('Lion', 8) |
+-----------------+
|     Lion        |
+-----------------+

I det här fallet angav vi inte ett tredje argument (för utfyllnadstecknet), och därför användes ett mellanslag. Mellanslagstecknet är standardtecknet.

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 LPAD('Lion', 8, '.');

Resultat:

+----------------------+
| LPAD('Lion', 8, '.') |
+----------------------+
| ....Lion             |
+----------------------+

Prickarna gör att vi kan se vadderingen tydligare.

Utfyllnadsnummer

Här är ett exempel på att fylla ut ett tal med nollor:

SELECT LPAD(7, 3, 0);

Resultat:

+---------------+
| LPAD(7, 3, 0) |
+---------------+
| 007           |
+---------------+

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 LPAD('Lion', 2);

Resultat:

+-----------------+
| LPAD('Lion', 2) |
+-----------------+
| Li              |
+-----------------+

Databasexempel

Här är ett exempel på utfyllnad av den vänstra delen av värdena i en databaskolumn:

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          |
+-----------------+---------------+

Här är ett annat exempel som fyller en priskolumn:

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                 |
+-----------+--------------+--------------------------+

Nollargument

Om något (eller alla) av argumenten är null , LPAD() funktion returnerar 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 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 LPAD('', 0);

Resultat:

+-------------+
| LPAD('', 0) |
+-------------+
|             |
+-------------+

Låt oss nu byta till Oracle-läge:

SET SQL_MODE=ORACLE;

Och kör koden igen:

SELECT LPAD('', 0);

Resultat:

+-------------+
| LPAD('', 0) |
+-------------+
| NULL        |
+-------------+

Argument saknas

Anropar LPAD() utan minst två argument resulterar i ett fel:

SELECT LPAD('Coffee');

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

Samma sak händer när du anropar LPAD() utan några argument:

SELECT LPAD();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

  1. Android - SQLite - VÄLJ MELLAN Datum1 OCH Datum2

  2. De tre främsta anledningarna till att folk flyttar till SaaS

  3. mysql:få rekordräkning mellan två datum och tid

  4. Kontrollera om det finns ett värde i Postgres-arrayen