sql >> Database teknologi >  >> RDS >> PostgreSQL

Formater tal med kommaer i PostgreSQL

I PostgreSQL kan vi bruge TO_CHAR() funktion til at formatere tal i et givet format. Dette inkluderer formatering af tal med kommaer på den relevante placering.

PostgreSQL har også en money datatype, som udsender værdien ved hjælp af den aktuelle lokalitet. Dette kan inkludere kommaer på det rigtige sted, baseret på den lokalitet, der bruges.

TO_CHAR() Funktion

Her er et eksempel på brug af TO_CHAR() funktion til at udskrive et tal med kommaer:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultat:

123,456.78

Det andet argument består af en masse numeriske skabelonmønstre, der bestemmer, hvordan det første argument formateres.

Her brugte jeg G skabelonmønster for en lokalitetsbevidst gruppeseparator (også kaldet en "tusinderseparator"). Jeg kunne have brugt et komma (, ), men det ville ikke have været lokalitetsbevidst.

Jeg brugte også D skabelonmønster for en lokalitetsbevidst decimalseparator.

I dette tilfælde brugte jeg også fm (som står for "Fill Mode") for at undertrykke alle efterfølgende nuller og indledende blanke, der kan være blevet automatisk anvendt på resultatet.

9 skabelonmønsteret er for hvert ciffer. Du kan bruge 0 i stedet hvis du vil inkludere foranstillede nuller.

Fordi G og D skabelonmønstre er lokalitetsbevidste, de er i stand til at producere det passende tegn til gruppe- og decimalseparatorerne.

Her er et eksempel for at demonstrere, hvad jeg mener:

SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultat:

123,456.78

Nu er gruppeseparatoren repræsenteret med et punktum/punktum, og decimaltegnet er repræsenteret med et komma. Dette er fordi jeg har ændret lc_numeric variabel for at bruge fr_FR (for Frankrig), og det er den franske skik at få sin gruppeseparator og decimaltegn repræsenteret på denne måde.

Forskellige lokaliteter har forskellige konventioner for formatering af tal, og G og D formatmodifikatorer er i stand til at bestemme, hvilke tegn der skal bruges til gruppeseparatorer og decimalen separator.

money Datatype

PostgreSQL har en money datatype, der udsender dens værdier formateret på en lokalitetsbevidst måde.

Eksempel:

SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);

Resultat:

$123,456.78

Lad os nu ændre lc_monetary variabel og se, hvordan dette påvirker outputtet:

SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);

Resultat:

123 456,78 Eu

I dette tilfælde er gruppeseparatoren repræsenteret af et mellemrum, og decimalen separator er et komma.


  1. Netværksadapteren kunne ikke etablere forbindelsen, når den oprettede forbindelse til Oracle DB

  2. Skema Switch-A-Roo:Del 2

  3. Importer CSV-fil direkte til MySQL

  4. Hvor værdi i kolonne, der indeholder kommaseparerede værdier