sql >> Databáze >  >> RDS >> MariaDB

Jak funguje FORMAT() v MariaDB

V MariaDB, FORMAT() je vestavěná řetězcová funkce, která formátuje a vrací dané číslo jako řetězec.

Vyžaduje dva argumenty a přijímá volitelný třetí argument. První je číslo, které chcete formátovat, druhé je desetinná pozice a (volitelné) třetí je národní prostředí.

Syntaxe

Syntaxe vypadá takto:

FORMAT(num, decimal_position[, locale])

Kde num je číslo, decimal_position je počet desetinných míst, na který se má číslo zaokrouhlit, a locale je volitelné národní prostředí pro formátování čísla (různá národní prostředí používají různé konvence pro formátování čísel).

Příklad

Zde je základní příklad:

SELECT FORMAT(1234.5678, 2);

Výsledek:

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

Zde FORMAT() přidal čárku pro oddělovač tisíců. Také to zaokrouhlilo číslo na dvě desetinná místa (protože jsem jako druhý argument uvedl 2).

Odstranit zlomkovou část

Chcete-li odstranit zlomkovou část (a související desetinnou čárku), použijte 0 (nula) jako druhý argument:

SELECT FORMAT(1234.5678, 0);

Výsledek:

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

Přidání desetinných míst

Pokud je druhý argument vyšší číslo než počet desetinných míst v prvním argumentu, k výsledku se přidají nuly, aby odrážel požadovaný počet desetinných míst:

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

Výsledek:

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

Určete národní prostředí

Volitelně můžete předat třetí argument pro určení národního prostředí, které se má použít pro formátování.

Příklad:

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

Výsledek:

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

Nečíselné argumenty

FORMAT() pouze formátuje čísla. Pokud například zadáte řetězec, výsledkem bude 0 vracení. Stále je však formátován na zadané desetinné místo:

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

Výsledek:

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

Nulové argumenty

Poskytování null protože jeden z prvních dvou argumentů má za následek null :

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

Výsledek:

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

Ale předání null jako třetí argument nemá vliv na výsledek:

SELECT FORMAT(25, 2, null);

Výsledek:

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

Poskytování pouze jednoho argumentu

Poskytnutí jediného argumentu má za následek chybu:

SELECT FORMAT(1234.56);

Výsledek:

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

Neposkytování argumentů

Volání FORMAT() bez předání jakýchkoli argumentů dojde k chybě:

SELECT FORMAT();

Výsledek:

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. Potenciální vylepšení ASPState

  2. Porušení omezení UNIQUE KEY na INSERT WHERE COUNT(*) =0 na SQL Server 2005

  3. Výkon SQL Serveru TOP IO Query -1

  4. změnit sloupec přetažení tabulky v databázi Oracle