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

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

Většina hlavních RDBMS má funkce, které nám umožňují formátovat čísla s čárkami jako oddělovačem skupin nebo desetinných míst.

Některé RDBMS také vydávají určité typy číselných dat s čárkami na příslušném místě.

Níže jsou uvedeny příklady formátování čísel pomocí čárek v některých populárnějších DBMS.

MySQL

V MySQL můžeme použít FORMAT() funkce pro formátování čísel čárkami:

SELECT FORMAT(123456.789, 2);

Výsledek:

123,456.79

Není třeba specifikovat, kam mají čárky jít. Funkce ví, kam je umístit.

Tato funkce také přijímá třetí argument pro určení národního prostředí. Ne všechna národní prostředí používají jako oddělovač skupin čárku – některá národní prostředí používají čárku jako oddělovač desetinných míst. FORMAT() funkce je dostatečně chytrá, aby věděla, kterou konvenci použít.

Příklad:

SELECT FORMAT(123456.789, 2, 'de_DE');

Výsledek:

123,456.79

Oracle

V Oracle můžeme použít TO_CHAR() funkce pro formátování čísla čárkami:

SELECT TO_CHAR(12345, 'fm99G999D00')
FROM DUAL;

Výsledek:

12,345.00

G format element je zástupný symbol pro oddělovač skupiny a D je pro oddělovač desetinných míst.

V tomto případě je výstupem oddělovače skupin čárka a výstupem desetinného znaku tečka. Je to proto, že moje aktuální relace je NLS_TERRITORY parametr je nastaven na Australia .

Je pravda, že bychom mohli místo G použít napevno zakódovanou čárku format element, ale to předpokládá, že oddělovač skupiny je čárka. Ne všechna národní prostředí používají jako oddělovač skupin čárku.

Další informace a příklady formátování čísel pomocí čárek v Oracle najdete v části Jak formátovat číslo pomocí čárky v Oracle.

SQL Server

V SQL Server můžeme použít FORMAT() funkce pro formátování čísel čárkami. Tato funkce přijímá číslo a formátovací řetězec:

SELECT 
    FORMAT(123456.789, 'N') AS "Number",
    FORMAT(123456.789, 'P') AS "Percent",
    FORMAT(123456.789, 'C') AS "Currency";

Výsledek:

+------------+----------------+-------------+
| Number     | Percent        | Currency    |
|------------+----------------+-------------|
| 123,456.79 | 12,345,678.90% | $123,456.79 |
+------------+----------------+-------------+

Funkce také přijímá volitelný argument „culture“ pro specifikaci národního prostředí, které se má použít pro formátovaný výstup.

Můžete si také vytvořit svůj vlastní formátovací řetězec, abyste mohli přesně určit, kam se přesune každý oddělovač tisíců a desetinných míst.

Příklady viz Jak formátovat čísla pomocí čárek na serveru SQL.

PostgreSQL

PostgreSQL má TO_CHAR() funkce, která funguje jako stejnojmenná funkce Oracle:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Výsledek:

123,456.78

Tato funkce si je vědoma národního prostředí, takže bude prezentovat příslušné oddělovače skupin a desetinných míst pro dané národní prostředí.

PostgreSQL má také money datový typ, který je vydáván ve formátu s vědomím národního prostředí. Příklad viz Formát čísel s čárkami v PostgreSQL.

SQLite

SQLite je ve srovnání s většinou ostatních DBMS o něco omezenější. Má však printf() funkce, která nám umožňuje formátovat čísla podle formátovacího řetězce:

SELECT printf("%,d", 123456789);

Výsledek:

123,456,789

To funguje dobře s celými čísly, ale reálná/plovoucí čísla vyžadují trochu více práce. Další informace naleznete v části Formát čísel s čárkou 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("%,d", 123456789);

Výsledek:

123,456,789

MariaDB

V MariaDB můžeme použít FORMAT() funkce pro formátování čísla čárkami:

SELECT FORMAT(123456.789, 2);

Výsledek:

123,456.79

Stejně jako u stejnojmenné funkce MySQL není třeba určovat, kam mají čárky jít. Funkce ví, kam je umístit.


  1. Nainstalujte MongoDB Community Edition 4.0 na Linux

  2. Transakce Mongo DB 4.0 s Mongoose &NodeJs, Express

  3. Jak nasadit databáze s otevřeným zdrojovým kódem

  4. Vzorová tabulka HBase