sql >> Databasteknik >  >> RDS >> MariaDB

Hur FORMAT() fungerar i MariaDB

I MariaDB, FORMAT() är en inbyggd strängfunktion som formaterar och returnerar det givna numret som en sträng.

Den kräver två argument och accepterar ett valfritt tredje argument. Den första är talet du vill formatera, den andra är decimalpositionen och den (valfria) tredje är språket.

Syntax

Syntaxen ser ut så här:

FORMAT(num, decimal_position[, locale])

Där num är talet, decimal_position är antalet decimaler att avrunda talet till och locale är ett valfritt språk att använda för att formatera numret (olika lokaler använder olika konventioner för att formatera siffror).

Exempel

Här är ett grundläggande exempel:

SELECT FORMAT(1234.5678, 2);

Resultat:

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

Här, FORMAT() lagt till ett kommatecken för tusentalsavgränsare. Det avrundade också talet till två decimaler (eftersom jag angav 2 som det andra argumentet).

Ta bort bråkdel

För att ta bort bråkdelen (och dess tillhörande decimalkomma), använd 0 (noll) som det andra argumentet:

SELECT FORMAT(1234.5678, 0);

Resultat:

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

Lägga till decimaler

Om det andra argumentet är ett högre antal än antalet decimaler i det första argumentet läggs nollor till i resultatet, så att det återspeglar det önskade antalet decimaler:

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

Resultat:

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

Ange ett språk

Du kan valfritt skicka ett tredje argument för att ange lokalen som ska användas för formateringen.

Exempel:

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";

Resultat:

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

Icke-numeriska argument

FORMAT() formaterar bara siffror. Att tillhandahålla en sträng resulterar till exempel i 0 återlämnas. Den är dock fortfarande formaterad till den angivna decimalen:

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

Resultat:

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

Nollargument

Tillhandahåller null eftersom något av de två första argumenten resulterar i null :

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

Resultat:

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

Men skickar null eftersom det tredje argumentet inte påverkar resultatet:

SELECT FORMAT(25, 2, null);

Resultat:

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

Ge bara ett argument

Att tillhandahålla ett enda argument resulterar i ett fel:

SELECT FORMAT(1234.56);

Resultat:

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

Inga argument

Anropar FORMAT() utan att skicka några argument resulterar i ett fel:

SELECT FORMAT();

Resultat:

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

  1. Spring Boot CRUD Exempel med MySQL

  2. Skalär UDF Inlining i SQL Server 2019

  3. När eller varför ska man använda en SET DEFINE OFF i Oracle Database

  4. SQL Server-systemdatabaser – Tempdb-underhållet