MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggiungi zeri iniziali in SQL

Di seguito sono riportati esempi di aggiunta di uno zero iniziale a un numero in SQL, utilizzando vari DBMS.

Oracolo

Oracle ha un TO_CHAR(number) funzione che ci permette di aggiungere zeri iniziali a un numero. Restituisce il risultato come una stringa nel formato specificato.

SELECT TO_CHAR(7, '000')
FROM DUAL;

Risultato:

007

Il 0 format element è ciò che restituisce gli zeri iniziali. Se non volessimo zeri iniziali, potremmo usare 9 .

Ecco un confronto tra 0 e 9 per dimostrare cosa intendo:

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;

Risultato:

             0              9 
______________ ______________ 
 001,234.46       1,234.46    

Il G è per il separatore di gruppo e il D è per il separatore decimale. Vedi questo elenco di elementi di formato numerico per un elenco completo.

Oracle ha anche un LPAD() funzione che ci permette di riempire un numero con zeri iniziali (o qualsiasi altro carattere). Vedi 2 modi per formattare un numero con zeri iniziali in Oracle per un esempio.

PostgreSQL

PostgreSQL ha anche un TO_CHAR() funzione, e funziona come l'omonima funzione di Oracle:

SELECT TO_CHAR(7, '000');

Risultato:

007

Ed ecco un confronto tra 0 e 9 :

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9";

Risultato:

      0      |      9      
-------------+-------------
  001,234.46 |    1,234.46

Vedere Modelli e modificatori di modelli per la formattazione numerica in Postgres per un elenco completo dei modelli di modelli che possono essere utilizzati con questa funzione in PostgreSQL.

Come Oracle, anche PostgreSQL ha un LPAD() funzione che ci permette di inserire numeri con zeri iniziali. Vedi 2 modi per aggiungere zeri iniziali in PostgreSQL per un esempio.

MySQL

MySQL ha un LPAD() funzione che ci permette di riempire la parte sinistra di una stringa o di un numero con il nostro carattere o serie di caratteri scelti. Pertanto, possiamo usarlo per riempire il nostro numero con zeri:

SELECT LPAD(7, 3, 0);

Risultato:

007

Fortunatamente, possiamo passare il numero come tipo numerico, quindi non è necessario convertirlo prima in una stringa.

Vedi Come aggiungere zeri iniziali a un numero in MySQL per ulteriori informazioni.

MariaDB

Come MySQL, anche MariaDB ha un LPAD() funzione che ci permette di riempire la parte sinistra di una stringa o di un numero con il nostro carattere o serie di caratteri scelti:

SELECT LPAD(7, 3, 0);

Risultato:

007

E come con MySQL, possiamo passare il numero come tipo numerico, quindi non è necessario convertirlo prima in una stringa.

Vedi Come riempire un numero con zeri iniziali in MariaDB per ulteriori informazioni.

SQL Server

SQL Server ha un FORMAT() funzione che ci consente di formattare i numeri utilizzando una stringa di formato:

SELECT FORMAT(7, '000');

Risultato:

007

Eccolo con un separatore di gruppo e un separatore decimale:

SELECT FORMAT(1234, '0,000.00');

Risultato:

1,234.00

Per ulteriori informazioni, vedere Aggiungere zeri iniziali e finali in SQL Server.

SQLite

SQLite ha un PRINTF() funzione che può essere utilizzata per aggiungere zeri iniziali a un numero:

SELECT PRINTF('%03d', 7);

Risultato:

007

Per una spiegazione, vedere Come formattare i numeri con zeri iniziali in SQLite.

Aggiorna :SQLite 3.38.0 (rilasciato il 22 febbraio 2022) è stato rinominato PRINTF() funzione su FORMAT() . Il PRINTF() originale name viene mantenuto come alias per la compatibilità con le versioni precedenti.

Quindi l'esempio sopra può essere modificato in questo:

SELECT FORMAT('%03d', 7);

Risultato:

007