MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie FORMAT() in MariaDB funktioniert

In MariaDB FORMAT() ist eine eingebaute String-Funktion, die die angegebene Zahl als String formatiert und zurückgibt.

Es erfordert zwei Argumente und akzeptiert ein optionales drittes Argument. Die erste ist die zu formatierende Zahl, die zweite die Dezimalstelle und die (optionale) dritte das Gebietsschema.

Syntax

Die Syntax lautet wie folgt:

FORMAT(num, decimal_position[, locale])

Wobei num ist die Zahl, decimal_position ist die Anzahl der Dezimalstellen, auf die die Zahl gerundet werden soll, und locale ist ein optionales Gebietsschema, das zum Formatieren der Zahl verwendet wird (verschiedene Gebietsschemata verwenden unterschiedliche Konventionen zum Formatieren von Zahlen).

Beispiel

Hier ist ein einfaches Beispiel:

SELECT FORMAT(1234.5678, 2);

Ergebnis:

+----------------------+
| FORMAT(1234.5678, 2) |
+----------------------+
| 1,234.57             |
+----------------------+

Hier FORMAT() ein Komma für ein Tausendertrennzeichen hinzugefügt. Es hat auch die Zahl auf zwei Dezimalstellen gerundet (weil ich 2 als zweites Argument angegeben habe).

Bruchteil entfernen

Um den Bruchteil (und den zugehörigen Dezimalpunkt) zu entfernen, verwenden Sie 0 (Null) als zweites Argument:

SELECT FORMAT(1234.5678, 0);

Ergebnis:

+----------------------+
| FORMAT(1234.5678, 0) |
+----------------------+
| 1,235                |
+----------------------+

Hinzufügen von Dezimalstellen

Wenn das zweite Argument eine höhere Zahl als die Anzahl der Dezimalstellen im ersten Argument ist, werden dem Ergebnis Nullen hinzugefügt, sodass es die gewünschte Anzahl an Dezimalstellen widerspiegelt:

SELECT 
    FORMAT(1234, 2),
    FORMAT(1234.56, 4),
    FORMAT(1234.56, 8);

Ergebnis:

+-----------------+--------------------+--------------------+
| FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) |
+-----------------+--------------------+--------------------+
| 1,234.00        | 1,234.5600         | 1,234.56000000     |
+-----------------+--------------------+--------------------+

Geben Sie ein Gebietsschema an

Sie können optional ein drittes Argument übergeben, um das Gebietsschema anzugeben, das für die Formatierung verwendet werden soll.

Beispiel:

SELECT 
    FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
    FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
    FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
    FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";

Ergebnis:

+--------------+--------------+------------+------------+
| da_DK        | rm_CH        | es_BO      | ar_SA      |
+--------------+--------------+------------+------------+
| 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 |
+--------------+--------------+------------+------------+

Nicht numerische Argumente

FORMAT() formatiert nur Zahlen. Die Angabe eines Strings ergibt beispielsweise 0 zurückgegeben wird. Es ist jedoch immer noch mit der angegebenen Dezimalstelle formatiert:

SELECT 
    FORMAT("Twenty five", 0),
    FORMAT("Twenty five", 2),
    FORMAT("Twenty five", 4);

Ergebnis:

+--------------------------+--------------------------+--------------------------+
| FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) |
+--------------------------+--------------------------+--------------------------+
| 0                        | 0.00                     | 0.0000                   |
+--------------------------+--------------------------+--------------------------+

Null-Argumente

Bereitstellung von null da eines der ersten beiden Argumente zu null führt :

SELECT 
    FORMAT(null, 2),
    FORMAT(25, null);

Ergebnis:

+-----------------+------------------+
| FORMAT(null, 2) | FORMAT(25, null) |
+-----------------+------------------+
| NULL            | NULL             |
+-----------------+------------------+

Aber Übergabe von null da das dritte Argument das Ergebnis nicht beeinflusst:

SELECT FORMAT(25, 2, null);

Ergebnis:

+---------------------+
| FORMAT(25, 2, null) |
+---------------------+
| 25.00               |
+---------------------+

Nur ein Argument angeben

Die Angabe eines einzelnen Arguments führt zu einem Fehler:

SELECT FORMAT(1234.56);

Ergebnis:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

Keine Argumente angeben

Aufruf von FORMAT() ohne Argumente zu übergeben führt zu einem Fehler:

SELECT FORMAT();

Ergebnis:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1