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

Come funziona LPAD() in MariaDB

In MariaDB, LPAD() è una funzione di stringa incorporata che riempie la parte sinistra di una stringa con un certo numero di caratteri.

Ad esempio, puoi utilizzare LPAD() per riempire la parte sinistra di una stringa con spazi. Oppure potresti riempire un numero con zeri iniziali.

Sintassi

La sintassi è questa:

LPAD(str, len [, padstr])

Dove str è la stringa da riempire e len è il numero di caratteri in cui inserire la stringa. Nota che questa non è la quantità di riempimento in sé, ma è il numero totale di caratteri che la stringa restituita avrà dopo che è stata riempita.

padstr è un argomento facoltativo che specifica quale carattere utilizzare per il riempimento.

Esempio

Ecco un esempio di base:

SELECT LPAD('Lion', 8);

Risultato:

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

In questo caso, non abbiamo specificato un terzo argomento (per il carattere di riempimento), quindi è stato utilizzato uno spazio. Lo spazio è il carattere predefinito.

Specifica un carattere di riempimento

Ecco un esempio che utilizza un terzo argomento. Specifica quale carattere utilizzare per il riempimento:

SELECT LPAD('Lion', 8, '.');

Risultato:

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

I punti ci consentono di vedere il riempimento più chiaramente.

Numeri di riempimento

Ecco un esempio di riempimento di un numero con zeri:

SELECT LPAD(7, 3, 0);

Risultato:

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

Imbottitura più piccola della corda originale

Se il secondo argomento è minore della stringa originale, non viene aggiunto alcun riempimento e la stringa originale viene abbreviata al numero di caratteri specificato:

SELECT LPAD('Lion', 2);

Risultato:

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

Esempi di database

Ecco un esempio di riempimento della parte sinistra dei valori in una colonna del database:

SELECT 
    LPAD(PetName, 15, '.') AS "Padded Name",
    PetName AS "Original Name"
FROM Pets;

Risultato:

+-----------------+---------------+
| Padded Name     | Original Name |
+-----------------+---------------+
| .........Fluffy | Fluffy        |
| ..........Fetch | Fetch         |
| ........Scratch | Scratch       |
| ............Wag | Wag           |
| ..........Tweet | Tweet         |
| .........Fluffy | Fluffy        |
| ...........Bark | Bark          |
| ...........Meow | Meow          |
+-----------------+---------------+

Ecco un altro esempio che riempie una colonna di prezzo:

SELECT 
    ProductId, 
    ProductPrice, 
    LPAD(ProductPrice, 8, 0) 
FROM Products;

Risultato:

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

Argomenti nulli

Se uno (o tutti) gli argomenti sono null , il LPAD() la funzione restituisce null :

SELECT 
    LPAD(null, 10, '.'),
    LPAD('Coffee', null, '.'),
    LPAD('Coffee', 10, null);

Risultato:

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) |
+---------------------+---------------------------+--------------------------+
| NULL                | NULL                      | NULL                     |
+---------------------+---------------------------+--------------------------+

Modalità Oracle

Quando non in esecuzione in modalità Oracle, se il risultato è vuoto (cioè ha una lunghezza pari a zero) il risultato è una stringa vuota.

Tuttavia, durante l'esecuzione in modalità Oracle, il risultato è null .

Qui è in modalità predefinita (cioè non in modalità Oracle):

SELECT LPAD('', 0);

Risultato:

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

Passiamo ora alla modalità Oracle:

SET SQL_MODE=ORACLE;

Ed esegui di nuovo il codice:

SELECT LPAD('', 0);

Risultato:

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

Argomenti mancanti

Chiamando LPAD() senza almeno due argomenti genera un errore:

SELECT LPAD('Coffee');

Risultato:

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

La stessa cosa accade quando si chiama LPAD() senza argomenti:

SELECT LPAD();

Risultato:

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