MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Ajouter des zéros non significatifs dans SQL

Vous trouverez ci-dessous des exemples d'ajout d'un zéro non significatif à un nombre en SQL, à l'aide de divers SGBD.

Oracle

Oracle a un TO_CHAR(number) fonction qui nous permet d'ajouter des zéros non significatifs à un nombre. Elle renvoie son résultat sous forme de chaîne au format spécifié.

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

Résultat :

007

Le 0 L'élément de format est ce qui génère les zéros non significatifs. Si nous ne voulions pas de zéros non significatifs, nous pourrions utiliser 9 .

Voici une comparaison entre 0 et 9 pour démontrer ce que je veux dire :

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

Résultat :

             0              9 
______________ ______________ 
 001,234.46       1,234.46    

Le G est pour le séparateur de groupe et le D est pour le séparateur décimal. Consultez cette liste d'éléments de format numérique pour une liste complète.

Oracle a aussi un LPAD() fonction qui nous permet de remplir un nombre avec des zéros non significatifs (ou tout autre caractère). Voir 2 façons de formater un nombre avec des zéros non significatifs dans Oracle pour un exemple.

PostgreSQL

PostgreSQL a aussi un TO_CHAR() fonction, et elle fonctionne comme la fonction d'Oracle du même nom :

SELECT TO_CHAR(7, '000');

Résultat :

007

Et voici une comparaison entre 0 et 9 :

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

Résultat :

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

Voir Modèles de modèles et modificateurs pour le formatage numérique dans Postgres pour une liste complète des modèles de modèles pouvant être utilisés avec cette fonction dans PostgreSQL.

Comme Oracle, PostgreSQL a aussi un LPAD() fonction qui nous permet de compléter les nombres avec des zéros non significatifs. Voir 2 façons d'ajouter des zéros non significatifs dans PostgreSQL pour un exemple.

MySQL

MySQL a un LPAD() fonction qui nous permet de remplir la partie gauche d'une chaîne ou d'un nombre avec le caractère ou la série de caractères que nous avons choisi. Par conséquent, nous pouvons l'utiliser pour remplir notre numéro avec des zéros :

SELECT LPAD(7, 3, 0);

Résultat :

007

Heureusement, nous pouvons transmettre le nombre sous forme de type numérique, il n'est donc pas nécessaire de le convertir d'abord en chaîne.

Voir Comment ajouter des zéros non significatifs à un nombre dans MySQL pour en savoir plus.

MariaDB

Comme MySQL, MariaDB possède également un LPAD() fonction qui nous permet de remplir la partie gauche d'une chaîne ou d'un nombre avec le caractère ou la série de caractères que nous avons choisi :

SELECT LPAD(7, 3, 0);

Résultat :

007

Et comme avec MySQL, nous pouvons transmettre le nombre sous forme de type numérique, il n'est donc pas nécessaire de le convertir d'abord en chaîne.

Voir Comment remplir un nombre avec des zéros non significatifs dans MariaDB pour en savoir plus.

SQL Server

SQL Server a un FORMAT() fonction qui nous permet de formater des nombres en utilisant une chaîne de format :

SELECT FORMAT(7, '000');

Résultat :

007

Le voici avec un séparateur de groupe et un séparateur décimal :

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

Résultat :

1,234.00

Voir Ajouter des zéros de début et de fin dans SQL Server pour en savoir plus.

SQLite

SQLite a un PRINTF() fonction qui peut être utilisée pour ajouter des zéros non significatifs à un nombre :

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

Résultat :

007

Voir Comment formater des nombres avec des zéros non significatifs dans SQLite pour une explication.

Mettre à jour :SQLite 3.38.0 (publié le 22 février 2022) a renommé PRINTF() fonction à FORMAT() . Le PRINTF() d'origine nom est conservé en tant qu'alias pour la rétrocompatibilité.

Ainsi, l'exemple ci-dessus peut être remplacé par ceci :

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

Résultat :

007