MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona FORMAT() in MariaDB

In MariaDB, FORMAT() è una funzione di stringa incorporata che formatta e restituisce il numero specificato come stringa.

Richiede due argomenti e accetta un terzo argomento facoltativo. Il primo è il numero che vuoi formattare, il secondo è la posizione decimale e il terzo (facoltativo) è la locale.

Sintassi

La sintassi è questa:

FORMAT(num, decimal_position[, locale])

Dove num è il numero, decimal_position è il numero di cifre decimali a cui arrotondare il numero e locale è una lingua facoltativa da utilizzare per formattare il numero (località diverse utilizzano convenzioni diverse per la formattazione dei numeri).

Esempio

Ecco un esempio di base:

SELECT FORMAT(1234.5678, 2);

Risultato:

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

Qui, FORMAT() aggiunta una virgola per un separatore di migliaia. Ha anche arrotondato il numero a due cifre decimali (perché ho specificato 2 come secondo argomento).

Rimuovi parte frazionaria

Per rimuovere la parte frazionaria (e la virgola decimale associata), usa 0 (zero) come secondo argomento:

SELECT FORMAT(1234.5678, 0);

Risultato:

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

Aggiunta di cifre decimali

Se il secondo argomento è un numero maggiore del numero di cifre decimali nel primo argomento, al risultato vengono aggiunti degli zeri, in modo che rifletta il numero di cifre decimali desiderato:

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

Risultato:

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

Specifica una lingua

Puoi facoltativamente passare un terzo argomento per specificare le impostazioni internazionali da utilizzare per la formattazione.

Esempio:

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

Risultato:

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

Argomenti non numerici

FORMAT() formatta solo i numeri. Fornendo una stringa, ad esempio, si ottiene 0 essere restituito. Tuttavia, è ancora formattato con la cifra decimale specificata:

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

Risultato:

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

Argomenti nulli

Fornendo null poiché uno dei primi due argomenti risulta in null :

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

Risultato:

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

Ma passando null poiché il terzo argomento non influisce sul risultato:

SELECT FORMAT(25, 2, null);

Risultato:

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

Fornire un solo argomento

Fornire un singolo argomento genera un errore:

SELECT FORMAT(1234.56);

Risultato:

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

Non fornire argomenti

Chiamando FORMAT() senza passare alcun argomento genera un errore:

SELECT FORMAT();

Risultato:

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