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'