I MariaDB, FORMAT()
er en indbygget strengfunktion, der formaterer og returnerer det givne tal som en streng.
Det kræver to argumenter og accepterer et valgfrit tredje argument. Den første er det tal, du vil formatere, den anden er decimalpositionen, og den (valgfri) tredje er lokaliteten.
Syntaks
Syntaksen ser sådan ud:
FORMAT(num, decimal_position[, locale])
Hvor num
er tallet, decimal_position
er antallet af decimaler, tallet skal afrundes til, og locale
er en valgfri lokalitet til at bruge til formatering af nummeret (forskellige lokaliteter bruger forskellige konventioner til formatering af tal).
Eksempel
Her er et grundlæggende eksempel:
SELECT FORMAT(1234.5678, 2);
Resultat:
+-----------------------------+| FORMAT(1234.5678, 2) |+----------------------------+| 1.234,57 |+-----------------------------+
Her FORMAT()
tilføjet et komma for tusinde-separator. Det afrundede også tallet til to decimaler (fordi jeg angav 2 som det andet argument).
Fjern brøkdel
For at fjerne brøkdelen (og dens tilhørende decimaltegn), skal du bruge 0
(nul) som det andet argument:
SELECT FORMAT(1234.5678, 0);
Resultat:
+-----------------------------+| FORMAT(1234.5678, 0) |+----------------------------+| 1.235 |+-----------------------------+
Tilføjelse af decimaler
Hvis det andet argument er et højere tal end antallet af decimaler i det første argument, tilføjes nuller til resultatet, så det afspejler det ønskede antal 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 |+----------------+--------------------+-------- ------------+
Angiv en lokalitet
Du kan valgfrit sende et tredje argument for at angive den lokalitet, der skal bruges til formateringen.
Eksempel:
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 |+---------------------------------- --------+
Ikke-numeriske argumenter
FORMAT()
formaterer kun tal. Angivelse af en streng resulterer f.eks. i 0
bliver returneret. Det er dog stadig formateret til den angivne decimal:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Resultat:
+---------------------------+------------------------ -------+---------------------------------+| FORMAT("Femogtyve", 0) | FORMAT("Femogtyve", 2) | FORMAT("Femogtyve", 4) |+--------------------------------+------------ --------------+----------------------------------+| 0 | 0,00 | 0,0000 |+----------------------------+------------------------ ------+---------------------------------+
Nul-argumenter
Giver null
da et af de to første argumenter resulterer i null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Resultat:
+----------------+------------------------+| FORMAT(nul, 2) | FORMAT(25, null) |+-----------------+----------------+| NULL | NULL |+-----------------+------------------+
Men sender null
da det tredje argument ikke påvirker resultatet:
SELECT FORMAT(25, 2, null);
Resultat:
+----------------------------+| FORMAT(25, 2, null) |+----------------------------+| 25.00 |+----------------------------+
Giver kun ét argument
Angivelse af et enkelt argument resulterer i en fejl:
SELECT FORMAT(1234.56);
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1
Ingen argumenter
Kalder FORMAT()
uden at sende nogen argumenter resulterer det i en fejl:
SELECT FORMAT();
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1