Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiungere zeri iniziali a un numero in MySQL

Quando lavori con MySQL, potresti occasionalmente incontrare situazioni in cui devi riempire un mucchio di numeri con zeri iniziali.

Forse hai il requisito che tutti i numeri abbiano tre cifre, ma nei dati che ti sono stati forniti, i numeri vanno da una singola cifra, a due e forse tre cifre. Il tuo requisito potrebbe essere quello di riempire tutti i numeri con zeri iniziali, ma solo per compensare eventuali carenze nel requisito delle tre cifre.

Il LPAD() la funzione fa esattamente quello che vuoi in questo scenario.

La funzione LPAD()

A rigor di termini, il LPAD() la funzione riempie una stringa con un'altra stringa. Funziona così:

LPAD(str,len,padstr)

Dove str è la stringa da riempire, len è la lunghezza richiesta del risultato finale e padstr è la stringa che verrà utilizzata per riempire l'altra stringa.

Esempio

Ecco un esempio di riempimento di un numero a una cifra con due zeri:

SELECT LPAD(7, 3, 0);

Risultato:

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

In questo caso sono stati aggiunti due zeri iniziali perché abbiamo specificato 3 come la lunghezza richiesta.

Quindi, se iniziamo con un numero a due cifre, viene aggiunto solo uno zero:

SELECT LPAD(17, 3, 0);

Risultato:

+----------------+
| LPAD(17, 3, 0) |
+----------------+
| 017            |
+----------------+

Valori diversi da zero

Il LPAD() la funzione non è limitata a soli zeri. Come accennato, può essere utilizzato per riempire qualsiasi stringa con qualsiasi altra stringa. Quindi puoi riempire un numero con 1 iniziali, o lettere iniziali o altri simboli, se necessario.

SELECT LPAD(7, 10, '.');

Risultato:

+------------------+
| LPAD(7, 10, '.') |
+------------------+
| .........7       |
+------------------+

E poiché in realtà è una funzione di stringa, può essere utilizzata per riempire qualsiasi stringa non numerica. E non è limitato a un solo carattere di riempimento:può essere riempito con più caratteri, se necessario:

SELECT LPAD('Cat', 21, 'Meow! ') AS Result;

Risultato:

+-----------------------+
| Result                |
+-----------------------+
| Meow! Meow! Meow! Cat |
+-----------------------+