sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan formateres tal med kommaer i SQL

De fleste af de store RDBMS'er har funktioner, der gør det muligt for os at formatere tal med kommaer som enten gruppeseparator eller decimalseparator.

Nogle RDBMS'er udsender også visse numeriske datatyper med kommaer på det relevante sted.

Nedenfor er eksempler på formatering af tal med kommaer i nogle af de mere populære DBMS'er.

MySQL

I MySQL kan vi bruge FORMAT() funktion til at formatere tal med kommaer:

SELECT FORMAT(123456.789, 2);

Resultat:

123,456.79

Der er ingen grund til at angive, hvor kommaerne skal gå. Funktionen ved, hvor de skal placeres.

Denne funktion accepterer også et tredje argument til at specificere lokaliteten. Ikke alle lokaliteter bruger et komma som gruppeseparator - nogle landestandarder bruger et komma som decimalseparator. FORMAT() funktion er smart nok til at vide, hvilken konvention der skal bruges.

Eksempel:

SELECT FORMAT(123456.789, 2, 'de_DE');

Resultat:

123,456.79

Oracle

I Oracle kan vi bruge TO_CHAR() funktion til at formatere et tal med kommaer:

SELECT TO_CHAR(12345, 'fm99G999D00')
FROM DUAL;

Resultat:

12,345.00

G formatelementet er en pladsholder for gruppeseparatoren og D er for decimaladskilleren.

I dette tilfælde udsender gruppeseparatoren et komma, og decimaltegnet udsender et punktum. Det er fordi min nuværende sessions NLS_TERRITORY parameter er indstillet til Australia .

Det er rigtigt, at vi bare kunne bruge et hårdkodet komma i stedet for G formatelement, men det forudsætter, at gruppeseparatoren er et komma. Ikke alle lokaliteter bruger et komma som gruppeseparator.

Se Sådan formateres et tal med komma i Oracle for at få flere oplysninger og eksempler på formatering af tal med kommaer i Oracle.

SQL-server

I SQL Server kan vi bruge FORMAT() funktion til at formatere tal med kommaer. Denne funktion accepterer nummeret og en formatstreng:

SELECT 
    FORMAT(123456.789, 'N') AS "Number",
    FORMAT(123456.789, 'P') AS "Percent",
    FORMAT(123456.789, 'C') AS "Currency";

Resultat:

+------------+----------------+-------------+
| Number     | Percent        | Currency    |
|------------+----------------+-------------|
| 123,456.79 | 12,345,678.90% | $123,456.79 |
+------------+----------------+-------------+

Funktionen accepterer også et valgfrit "kultur"-argument for at specificere den lokalitet, der skal bruges til det formaterede output.

Du kan også konstruere din egen tilpassede formatstreng, så du kan bestemme præcist, hvor hver tusinde-separator og decimal-separator går.

Se Sådan formateres tal med kommaer i SQL Server for eksempler.

PostgreSQL

PostgreSQL har en TO_CHAR() funktion, der fungerer som Oracles funktion af samme navn:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultat:

123,456.78

Denne funktion er lokalitetsbevidst, så den vil præsentere de passende gruppe- og decimalseparatorer for lokaliteten.

PostgreSQL har også en money datatype, som udlæses i et lokalitetsbevidst format. Se Formater tal med kommaer i PostgreSQL for et eksempel.

SQLite

SQLite er en smule mere begrænset sammenlignet med de fleste andre DBMS'er. Den har dog en printf() funktion, der giver os mulighed for at formatere tal i henhold til en formatstreng:

SELECT printf("%,d", 123456789);

Resultat:

123,456,789

Dette fungerer fint med heltal, men reelle/flydende tal kræver lidt mere arbejde. Se Formater tal med komma i SQLite for mere om dette.

Opdater :SQLite 3.38.0 (frigivet 22. februar 2022) omdøbte printf() funktion til format() . Den originale printf() navnet bibeholdes som et alias for bagudkompatibilitet.

Så ovenstående eksempel kan ændres til dette:

SELECT format("%,d", 123456789);

Resultat:

123,456,789

MariaDB

I MariaDB kan vi bruge FORMAT() funktion til at formatere et tal med kommaer:

SELECT FORMAT(123456.789, 2);

Resultat:

123,456.79

Som med MySQL-funktionen af ​​samme navn, er der ingen grund til at angive, hvor kommaerne skal gå. Funktionen ved, hvor de skal placeres.


  1. Mongoose near(...)-forespørgsel på 2dsphere-indekseret felt returnerer ikke gyldige resultater

  2. Docker undlader at starte skinner

  3. HDFS NameNode Høj tilgængelighed i Hadoop

  4. MongoDB:Opdater hvert dokument på ét felt