MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak formatować liczby za pomocą przecinków w SQL?

Większość głównych RDBMS ma funkcje, które umożliwiają nam formatowanie liczb za pomocą przecinków jako separatora grup lub separatora dziesiętnego.

Niektóre RDBMS wyświetlają również pewne typy danych numerycznych z przecinkami w odpowiednim miejscu.

Poniżej znajdują się przykłady formatowania liczb z przecinkami w niektórych bardziej popularnych DBMS.

MySQL

W MySQL możemy użyć FORMAT() funkcja formatowania liczb z przecinkami:

SELECT FORMAT(123456.789, 2);

Wynik:

123,456.79

Nie ma potrzeby określania, gdzie powinny iść przecinki. Funkcja wie, gdzie je umieścić.

Ta funkcja akceptuje również trzeci argument określający ustawienia regionalne. Nie wszystkie lokalizacje używają przecinka jako separatora grup — niektóre lokalizacje używają przecinka jako separatora dziesiętnego. FORMAT() funkcja jest wystarczająco inteligentna, aby wiedzieć, której konwencji użyć.

Przykład:

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

Wynik:

123.456,79

Wyrocznia

W Oracle możemy użyć TO_CHAR() funkcja formatowania liczby z przecinkami:

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

Wynik:

12,345.00

G element format jest symbolem zastępczym dla separatora grup, a D jest separatorem dziesiętnym.

W takim przypadku separator grup wyprowadza przecinek, a znak dziesiętny wyprowadza kropkę. To dlatego, że NLS_TERRITORY mojej obecnej sesji parametr jest ustawiony na Australia .

To prawda, że ​​zamiast G moglibyśmy użyć zakodowanego na stałe przecinka format elementu, ale zakłada się, że separatorem grupy jest przecinek. Nie wszystkie lokalizacje używają przecinka jako separatora grup.

Zobacz Jak formatować liczbę z przecinkiem w Oracle, aby uzyskać więcej informacji i przykładów formatowania liczb z przecinkami w Oracle.

Serwer SQL

W SQL Server możemy użyć FORMAT() funkcja formatowania liczb z przecinkami. Ta funkcja akceptuje liczbę i ciąg formatu:

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

Wynik:

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

Funkcja akceptuje również opcjonalny argument „culture” określający ustawienia regionalne używane dla sformatowanego wyjścia.

Możesz także skonstruować własny niestandardowy ciąg formatu, aby móc dokładnie określić, gdzie znajduje się każdy separator tysięcy i separator dziesiętny.

Zobacz Jak formatować liczby za pomocą przecinków w SQL Server, aby zapoznać się z przykładami.

PostgreSQL

PostgreSQL ma funkcję TO_CHAR() funkcja, która działa jak funkcja Oracle o tej samej nazwie:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Wynik:

123,456.78

Ta funkcja jest świadoma ustawień regionalnych, więc przedstawi odpowiednią grupę i separatory dziesiętne dla ustawień regionalnych.

PostgreSQL ma również money typ danych, który jest wyprowadzany w formacie uwzględniającym ustawienia regionalne. Zobacz przykład Formatowanie liczb z przecinkami w PostgreSQL.

SQLite

SQLite jest nieco bardziej ograniczony w porównaniu z większością innych DBMS. Ma jednak funkcję printf() funkcja, która pozwala nam formatować liczby zgodnie z ciągiem formatującym:

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

Wynik:

123,456,789

Działa to dobrze z liczbami całkowitymi, ale liczby rzeczywiste/zmiennoprzecinkowe wymagają nieco więcej pracy. Zobacz Formatowanie liczb z przecinkiem w SQLite, aby uzyskać więcej informacji na ten temat.

Aktualizacja :SQLite 3.38.0 (wydany 22 lutego 2022) zmienił nazwę printf() funkcja do format() . Oryginalny printf() nazwa jest zachowywana jako alias dla wstecznej kompatybilności.

Więc powyższy przykład można zmienić na następujący:

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

Wynik:

123,456,789

MariaDB

W MariaDB możemy użyć FORMAT() funkcja formatowania liczby z przecinkami:

SELECT FORMAT(123456.789, 2);

Wynik:

123,456.79

Podobnie jak w przypadku funkcji MySQL o tej samej nazwie, nie ma potrzeby określania, gdzie powinny znajdować się przecinki. Funkcja wie, gdzie je umieścić.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:BŁĄD:proces potomny nie powiódł się, zakończono z błędem numer 14

  2. Wskaźnik potrójnego związku Mongo

  3. Zbiorcze upsert w MongoDB przy użyciu mongoose

  4. $rtrim . MongoDB

  5. Przewodnik po zapytaniach w Spring Data MongoDB