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

So formatieren Sie Zahlen mit Kommas in SQL

Die meisten großen RDBMSs haben Funktionen, die es uns ermöglichen, Zahlen mit Kommas entweder als Gruppentrennzeichen oder als Dezimaltrennzeichen zu formatieren.

Einige RDBMS geben auch bestimmte numerische Datentypen mit Kommas an der entsprechenden Stelle aus.

Nachfolgend finden Sie Beispiele für die Formatierung von Zahlen mit Kommas in einigen der bekannteren DBMS.

MySQL

In MySQL können wir das FORMAT() verwenden Funktion zum Formatieren von Zahlen mit Kommas:

SELECT FORMAT(123456.789, 2);

Ergebnis:

123,456.79

Es ist nicht erforderlich, anzugeben, wo die Kommas stehen sollen. Die Funktion weiß, wo sie abgelegt werden müssen.

Diese Funktion akzeptiert auch ein drittes Argument zur Angabe des Gebietsschemas. Nicht alle Gebietsschemata verwenden ein Komma als Gruppentrennzeichen – einige Gebietsschemata verwenden ein Komma als Dezimaltrennzeichen. Das FORMAT() Die Funktion ist intelligent genug, um zu wissen, welche Konvention zu verwenden ist.

Beispiel:

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

Ergebnis:

123,456.79

Orakel

In Oracle können wir den TO_CHAR() verwenden Funktion zum Formatieren einer Zahl mit Kommas:

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

Ergebnis:

12,345.00

Das G format-Element ist ein Platzhalter für das Gruppentrennzeichen und das D ist für das Dezimaltrennzeichen.

In diesem Fall gibt das Gruppentrennzeichen ein Komma und das Dezimalzeichen einen Punkt aus. Das liegt daran, dass meine aktuelle Sitzung NLS_TERRITORY ist Parameter ist auf Australia gesetzt .

Es ist wahr, dass wir anstelle des G einfach ein fest codiertes Komma verwenden könnten format-Element, aber das setzt voraus, dass das Gruppentrennzeichen ein Komma ist. Nicht alle Gebietsschemas verwenden ein Komma als Gruppentrennzeichen.

Weitere Informationen und Beispiele zum Formatieren von Zahlen mit Kommas in Oracle finden Sie unter How to Format a Number with a Comma in Oracle.

SQL-Server

In SQL Server können wir das FORMAT() verwenden Funktion zum Formatieren von Zahlen mit Kommas. Diese Funktion akzeptiert die Nummer und einen Formatstring:

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 |
+------------+----------------+-------------+

Die Funktion akzeptiert auch ein optionales „Kultur“-Argument zur Angabe des Gebietsschemas, das für die formatierte Ausgabe verwendet werden soll.

Sie können auch Ihre eigene benutzerdefinierte Formatzeichenfolge erstellen, sodass Sie genau bestimmen können, wohin jedes Tausender- und Dezimaltrennzeichen gehört.

Beispiele finden Sie unter So formatieren Sie Zahlen mit Kommas in SQL Server.

PostgreSQL

PostgreSQL hat ein TO_CHAR() Funktion, die wie die gleichnamige Funktion von Oracle funktioniert:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Ergebnis:

123,456.78

Diese Funktion ist gebietsschemaabhängig, daher zeigt sie die entsprechenden Gruppen- und Dezimaltrennzeichen für das Gebietsschema an.

PostgreSQL hat auch ein money Datentyp, der in einem länderspezifischen Format ausgegeben wird. Ein Beispiel finden Sie unter Zahlen mit Kommas in PostgreSQL formatieren.

SQLite

SQLite ist im Vergleich zu den meisten anderen DBMS etwas eingeschränkter. Es hat jedoch ein printf() Funktion, mit der wir Zahlen gemäß einer Formatzeichenfolge formatieren können:

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

Ergebnis:

123,456,789

Dies funktioniert gut mit Ganzzahlen, aber Real-/Gleitkommazahlen erfordern etwas mehr Arbeit. Weitere Informationen hierzu finden Sie unter Formatieren von Zahlen mit einem Komma in SQLite.

Aktualisieren :SQLite 3.38.0 (veröffentlicht am 22. Februar 2022) hat printf() umbenannt Funktion zu format() . Das Original 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

MariaDB

In MariaDB können wir das FORMAT() verwenden Funktion zum Formatieren einer Zahl mit Kommas:

SELECT FORMAT(123456.789, 2);

Ergebnis:

123,456.79

Wie bei der gleichnamigen MySQL-Funktion muss hier nicht angegeben werden, wo die Kommas stehen sollen. Die Funktion weiß, wo sie abgelegt werden müssen.