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

Formatieren Sie eine Zahl als Währung in SQL

Einige DBMSs haben Funktionen, die es uns ermöglichen, Zahlen als Währung zu formatieren, indem wir einfach die entsprechende Formatzeichenfolge übergeben. Dadurch wird die Zahl in eine Zeichenfolge mit dem entsprechenden Währungssymbol, dem Gruppentrennzeichen und dem Dezimalpunkt (falls relevant) umgewandelt.

Andere DBMS machen es nicht so einfach, und Sie müssen zuerst ein wenig arbeiten.

Nachfolgend finden Sie Beispiele für die Verwendung von SQL zum Formatieren von Zahlen als Währung in einigen der beliebtesten DBMSs.

Orakel

Oracle Database stellt uns den TO_CHAR(number) zur Verfügung Funktion, mit der wir Zahlen formatieren können, indem wir ein Formatmodell (oder eine Formatzeichenfolge) übergeben. Wir können diese Funktion verwenden, um eine Zahl als Währung zurückzugeben.

Oracle stellt einige Formatelemente für die Rückgabe des Währungssymbols bereit, je nachdem, welches Währungssymbol Sie benötigen – das lokale Währungssymbol, das ISO-Währungssymbol oder das duale Währungssymbol.

Hier ist ein Beispiel für alle drei:

ALTER SESSION SET NLS_TERRITORY = 'Denmark';
SELECT 
    TO_CHAR(12345, 'fmL99G999D00') AS "r1",
    TO_CHAR(12345, 'fmC99G999D00') AS "r3",
    TO_CHAR(12345, 'fmU99G999D00') AS "r3"
FROM DUAL;

Ergebnis:

            r1              r3            r3 
______________ _______________ _____________ 
kr12.345,00    DKK12.345,00    €12.345,00   

Weitere Informationen und Beispiele finden Sie unter So formatieren Sie eine Zahl als Währung in Oracle.

SQL-Server

SQL Server stellt die Funktion FORMAT() bereit, mit der wir Zahlen und Datumsangaben formatieren können. Das C Formatbezeichner kann verwendet werden, um eine Zahl als Währung zurückzugeben:

SELECT FORMAT(1234, 'C');

Ergebnis:

$1,234.00

Es gibt noch andere Dinge, die Sie mit der Formatzeichenfolge tun können, z. B. angeben, wie viele Dezimalstellen zurückgegeben werden sollen.

Die Funktion akzeptiert auch ein optionales drittes Argument, das verwendet werden kann, um das Gebietsschema anzugeben, das für die Zahlen- und Währungsformatierung verwendet werden soll. Unterschiedliche Gebietsschemas verwenden unterschiedliche Konventionen für ihre Zahlen und Währungen.

Weitere Informationen und Beispiele finden Sie unter So formatieren Sie Zahlen als Währung in SQL Server (T-SQL).

PostgreSQL

PostgreSQL hat ein money Datentyp, der bei der Ausgabe typischerweise in der Landeswährung formatiert wird:

SELECT CAST(3145 as money);

Ergebnis:

$3,145.00

PostgreSQL hat auch ein TO_CHAR() Funktion, die den Wert in einen String konvertiert und ihn basierend auf dem von uns bereitgestellten Format-String formatiert. Daher können wir es verwenden, um Zahlen als Währung zu formatieren, indem wir die entsprechende Formatzeichenfolge übergeben.

Weitere Informationen finden Sie unter So formatieren Sie Zahlen als Währung in PostgreSQL.

MySQL

In MySQL müssen wir etwas mehr Arbeit leisten. MySQL stellt uns keinen Formatbezeichner für das Währungssymbol zur Verfügung, also müssen wir unseren eigenen bereitstellen:

SELECT CONCAT('$', FORMAT(1234.5678, 2));

Ergebnis:

$1,234.57

Hier haben wir den CONCAT() verwendet Funktion, um das Währungssymbol und die Zahl zu verketten, und wir haben das FORMAT() verwendet Funktion, um die Nummer in unser gewünschtes Format zu formatieren.

Es ist möglich, ein Gebietsschema für die numerische Formatierung anzugeben. Dies bestimmt, welche Zeichen für das Gruppentrennzeichen und den Dezimalpunkt verwendet werden.

Weitere Informationen finden Sie unter So formatieren Sie Zahlen als Währung in MySQL.

MariaDB

MariaDB ist MySQL sehr ähnlich, und wir können die gleiche Methode verwenden, die wir mit MySQL verwendet haben.

Hier ist ein Beispiel, das ein Gebietsschema angibt, das für die Zahlenformatierung verwendet werden soll:

SELECT CONCAT('€', FORMAT(8790.2398, 2, 'de_DE'));

Ergebnis:

€8.790,24

In diesem Fall haben wir das Euro-Symbol ( ) und die Nummer formatiert, um die in Deutschland verwendeten Nummerierungskonventionen zu verwenden.

Weitere Informationen finden Sie unter Formatieren einer Zahl als Währung in MariaDB.

SQLite

SQLite hat ein PRINTF() Funktion, mit der wir eine Zahl basierend auf einer Formatzeichenfolge formatieren können. Beispielsweise können wir dies verwenden, um die Zahl auf eine bestimmte Anzahl von Dezimalstellen zu formatieren und ein Währungssymbol hinzuzufügen.

SELECT PRINTF("$%.2f", 123.457);

Ergebnis:

$123.46

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("$%.2f", 123.457);

Ergebnis:

$123.46

Weitere Informationen zu FORMAT() finden Sie in der SQLite-Dokumentation Funktion.