MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So formatieren Sie Zahlen in SQL

Die meisten großen RDBMS bieten uns Möglichkeiten, Zahlen mit SQL zu formatieren. Einige bieten nur grundlegende Formatierungsfunktionen, während andere fortgeschrittener sind.

Nachfolgend finden Sie Beispiele für die Formatierung einer Zahl in einigen der bekannteren RDBMSs.

MySQL

In MySQL können wir das FORMAT() verwenden Funktion zum Formatieren einer Zahl in einem bestimmten Format. Diese Funktion akzeptiert drei Parameter; die Zahl, die Anzahl der Dezimalstellen und ein optionales Gebietsschema:

SELECT FORMAT(123456.789, 2);

Ergebnis:

123,456.79

Wie bereits erwähnt, können Sie auch ein drittes Argument übergeben, um das Gebietsschema anzugeben, das für das Formatierungsmuster verwendet werden soll. Ein Beispiel finden Sie unter So formatieren Sie Zahlen in MySQL.

Informationen zum Formatieren von Zahlen als Währung finden Sie unter How to Format Numbers as Currency in MySQL.

Orakel

Oracle Database bietet uns eine Reihe von Optionen, wenn es um die Formatierung von Zahlen geht.

Insbesondere der TO_CHAR(number) -Funktion ermöglicht es uns, eine Zahl basierend auf unserem eigenen benutzerdefinierten Formatmodell zu formatieren.

Beispiel:

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

Ergebnis:

$12,345.00

Das erste Argument ist die zu formatierende Zahl und das zweite Argument ist das Formatmodell. Das Formatmodell besteht aus einem oder mehreren Formatelementen, von denen jedes ein anderes Element in der formatierten Ausgabe darstellt.

Im obigen Beispiel verwenden wir den 9 Zeichen, das jede Ziffer darstellt, und die 0 Zeichen, um die Ziffer oder Null auszugeben (je nachdem, ob an dieser Position eine Ziffer vorhanden ist oder nicht). Wir verwenden auch G für ein länderspezifisches Gruppentrennzeichen und D für ein länderspezifisches Dezimaltrennzeichen. Der fm -Element unterdrückt jegliche führende oder nachfolgende Auffüllung, die möglicherweise auf das Ergebnis angewendet wird.

Hier ist eine vollständige Liste der Formatelemente, die Sie beim Formatieren von Zahlen für Ihr Formatmodell verwenden können.

Es gibt andere Möglichkeiten, Zahlen in Oracle zu formatieren. Zum Beispiel das LPAD() -Funktion kann verwendet werden, um Zahlen in eine Zeichenfolge umzuwandeln und sie im Handumdrehen genau so zu formatieren, wie Sie es möchten. Funktionen wie CAST() kann sich auch auf die Formatierung einer Zahl auswirken, je nach Datentyp, in den sie umgewandelt wird.

Weitere Einzelheiten und Beispiele finden Sie unter So formatieren Sie Zahlen in Oracle.

PostgreSQL

Wie Oracle hat auch PostgreSQL ein TO_CHAR() Funktion, und es funktioniert auf ziemlich die gleiche Weise:

SELECT TO_CHAR(923, 'fm000G000th');

Ergebnis:

000,923rd

Hier habe ich den 0 verwendet format-Element, um führende Nullen auszugeben, auch wenn die ursprüngliche Zahl an dieser Stelle keine Ziffern hatte. In diesem Fall habe ich den th verwendet format-Element, um die Zahl in ihre Ordinalzahl umzuwandeln. Ich habe auch G verwendet für ein länderspezifisches Gruppentrennzeichen.

Hier ist eine Liste von Vorlagenmustern, aus denen die Formatzeichenfolge bestehen kann, wenn Zahlen formatiert werden, sowie die Formatmodifikatoren.

Eine andere Möglichkeit, eine Zahl in PostgreSQL zu formatieren, besteht darin, sie in money umzuwandeln Datentyp. Als money gespeicherte Zahlen Typ werden in einem Format ausgegeben, das das Gebietsschema berücksichtigt, mit dem entsprechenden Währungssymbol, Gruppentrennzeichen, Dezimaltrennzeichen usw.:

SELECT CAST(10000 as money);

Ergebnis:

$10,000.00

Weitere Beispiele zum Formatieren von Zahlen in PostgreSQL finden Sie unter So formatieren Sie Zahlen in PostgreSQL.

SQL-Server

SQL Server hat das FORMAT() Funktion, die ähnlich wie TO_CHAR() von Oracle und PostgreSQL funktioniert Funktion, indem sie es Ihnen ermöglicht, Zahlen basierend auf einer Formatzeichenfolge zu formatieren:

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

Ergebnis:

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

Dieses Beispiel demonstriert drei Standardformatbezeichner, von denen jeder die Zahl in einem bestimmten Format ausgibt.

Wir können auch unsere eigenen benutzerdefinierten Formatbezeichner verwenden, mit denen wir unser eigenes Format erstellen können, falls das Standardformat nicht unseren Wünschen entspricht.

Sie können auch Dinge wie Zahlen in ihrem hexadezimalen Äquivalent formatieren oder Exponentialschreibweise verwenden usw.

Und Sie können ein optionales drittes Argument übergeben, um das Gebietsschema anzugeben, für das die Zahl formatiert werden soll (es formatiert die Zahl unter Verwendung der Konventionen dieses Gebietsschemas).

Weitere Beispiele finden Sie unter So formatieren Sie Zahlen in SQL Server.

MariaDB

Wie MySQL hat MariaDB ein FORMAT() Funktion, die eine grundlegende Zahlenformatierung bereitstellt.

Hier ist ein Beispiel für die Verwendung dieser Funktion zum Formatieren einer Zahl mit unterschiedlichen Gebietsschemata:

SELECT 
    FORMAT(123456.789, 2, 'ta_IN') AS "Tamil, India",
    FORMAT(123456.789, 2, 'de_DE') AS "German, Germany",
    FORMAT(123456.789, 2, 'zh_HK') AS "Chinese, Hong Kong";

Ergebnis:

+--------------+-----------------+--------------------+
| Tamil, India | German, Germany | Chinese, Hong Kong |
+--------------+-----------------+--------------------+
| 1,23,456.79  | 123.456,79      | 123,456.79         |
+--------------+-----------------+--------------------+

Weitere Beispiele finden Sie unter So formatieren Sie Zahlen in MariaDB.

SQLite

SQLite ist eingeschränkter als die anderen DBMSs, wenn es um die Formatierung von Zahlen geht. Es gibt jedoch Möglichkeiten, eine grundlegende Zahlenformatierung zu erhalten:

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

Ergebnis:

123,456,789

Der PRINTF() Die Funktion kann Gruppentrennzeichen für ganze Zahlen ausgeben, aber nicht für reelle/Gleitkommazahlen. Um Real-/Gleitkommazahlen zu formatieren, müssten Sie etwas mehr Arbeit leisten. Ein Beispiel dafür, was ich meine, finden Sie unter Zahlen mit einem Komma in SQLite formatieren.

Aktualisieren :SQLite 3.38.0 (veröffentlicht am 22. Februar 2022) hat PRINTF() umbenannt Funktion zu FORMAT() . Das ursprüngliche PRINTF() Name wird als Alias ​​für Abwärtskompatibilität beibehalten.

Das obige Beispiel kann also folgendermaßen geändert werden:

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

Ergebnis:

123,456,789