sql >> Databáze >  >> NoSQL >> MongoDB

Přidejte úvodní nuly v SQL

Níže jsou uvedeny příklady přidání úvodní nuly k číslu v SQL pomocí různých DBMS.

Oracle

Oracle má TO_CHAR(number) funkce, která nám umožňuje přidat k číslu úvodní nuly. Výsledek vrátí jako řetězec v zadaném formátu.

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

Výsledek:

007

0 formátovací prvek je výstupem úvodních nul. Pokud bychom nechtěli úvodní nuly, mohli bychom použít 9 .

Zde je srovnání mezi 0 a 9 abych demonstroval, co tím myslím:

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

Výsledek:

             0              9 
______________ ______________ 
 001,234.46       1,234.46    

G je pro oddělovač skupiny a D je pro oddělovač desetinných míst. Úplný seznam naleznete v tomto seznamu prvků formátu čísel.

Oracle má také LPAD() funkce, která nám umožňuje doplnit číslo úvodními nulami (nebo jakýmkoli jiným znakem). Příklad viz 2 způsoby formátování čísla s úvodními nulami v Oracle.

PostgreSQL

PostgreSQL má také TO_CHAR() a funguje jako stejnojmenná funkce Oracle:

SELECT TO_CHAR(7, '000');

Výsledek:

007

A zde je srovnání mezi 0 a 9 :

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

Výsledek:

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

Úplný seznam vzorů šablon, které lze s touto funkcí v PostgreSQL použít, najdete v části Vzory šablon a modifikátory pro numerické formátování v Postgresu.

Stejně jako Oracle má PostgreSQL také LPAD() funkce, která nám umožňuje doplňovat čísla úvodními nulami. Příklad viz 2 způsoby přidání úvodních nul v PostgreSQL.

MySQL

MySQL má LPAD() funkce, která nám umožňuje vyplnit levou část řetězce nebo čísla námi zvoleným znakem nebo řadou znaků. Proto jej můžeme použít k doplnění našeho čísla nulami:

SELECT LPAD(7, 3, 0);

Výsledek:

007

Naštěstí můžeme číslo předat jako číselný typ, takže jej není nutné nejprve převádět na řetězec.

Další informace naleznete v části Jak přidat úvodní nuly k číslu v MySQL.

MariaDB

Stejně jako MySQL má MariaDB také LPAD() funkce, která nám umožňuje vyplnit levou část řetězce nebo čísla námi zvoleným znakem nebo řadou znaků:

SELECT LPAD(7, 3, 0);

Výsledek:

007

A stejně jako u MySQL můžeme číslo předat jako číselný typ, takže jej není nutné nejprve převádět na řetězec.

Další informace naleznete v části Jak vyplnit číslo úvodními nulami v MariaDB.

SQL Server

SQL Server má FORMAT() funkce, která nám umožňuje formátovat čísla pomocí formátovacího řetězce:

SELECT FORMAT(7, '000');

Výsledek:

007

Tady je to s oddělovačem skupin a oddělovačem desetinných míst:

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

Výsledek:

1,234.00

Další informace naleznete v části Přidání počátečních a koncových nul na serveru SQL.

SQLite

SQLite má PRINTF() funkce, kterou lze použít k přidání úvodních nul k číslu:

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

Výsledek:

007

Vysvětlení naleznete v části Jak formátovat čísla s úvodními nulami v SQLite.

Aktualizovat :SQLite 3.38.0 (vydáno 22. února 2022) přejmenováno na PRINTF() funkce na FORMAT() . Původní PRINTF() jméno je zachováno jako alias pro zpětnou kompatibilitu.

Výše uvedený příklad lze tedy změnit na tento:

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

Výsledek:

007

  1. Jak formátovat čísla s čárkami v SQL

  2. Redis filtrovat podle rozsahu, seřadit a vrátit nejprve 10

  3. První MongoDB hosting DBaaS pro podporu Azure Government pro veřejný sektor

  4. Deserializace ID objektu Mongo DB pomocí serializátoru JSON