sql >> Database >  >> RDS >> MariaDB

Hoe LPAD() werkt in MariaDB

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'

  1. Kunnen opmerkingen de prestaties van opgeslagen procedures belemmeren?

  2. Converteer JS date time naar MySQL datetime

  3. GATHER_PLAN_STATISTICS genereert geen basisplanstatistieken

  4. Tabelwijziging in Oracle volgen