PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Formater les nombres avec des virgules dans PostgreSQL

Dans PostgreSQL, nous pouvons utiliser le TO_CHAR() fonction pour formater les nombres dans un format donné. Cela inclut le formatage des nombres avec des virgules à l'emplacement approprié.

PostgreSQL a aussi un money type de données, qui génère la valeur en utilisant les paramètres régionaux actuels. Cela peut inclure des virgules à l'endroit approprié, en fonction des paramètres régionaux utilisés.

Le TO_CHAR() Fonction

Voici un exemple d'utilisation de TO_CHAR() fonction pour afficher un nombre avec des virgules :

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Résultat :

123,456.78

Le deuxième argument consiste en un ensemble de modèles de modèles numériques qui déterminent le formatage du premier argument.

Ici, j'ai utilisé le G modèle de modèle pour un séparateur de groupe compatible avec les paramètres régionaux (également appelé « séparateur de milliers »). J'aurais pu utiliser une virgule (, ), mais cela n'aurait pas été sensible aux paramètres régionaux.

J'ai aussi utilisé le D modèle de modèle pour un séparateur décimal compatible avec les paramètres régionaux.

Dans ce cas, j'ai aussi utilisé fm (qui signifie « Mode de remplissage ») pour supprimer tous les zéros de fin et blancs de tête qui peuvent avoir été automatiquement appliqués au résultat.

Le 9 modèle de modèle est pour chaque chiffre. Vous pouvez utiliser 0 à la place si vous souhaitez inclure des zéros non significatifs.

Parce que le G et D les modèles de modèle sont sensibles aux paramètres régionaux, ils sont capables de produire le caractère approprié pour le groupe et les séparateurs décimaux.

Voici un exemple pour illustrer ce que je veux dire :

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

Résultat :

123.456,78

Désormais, le séparateur de groupe est représenté par un point/point et le séparateur décimal est représenté par une virgule. C'est parce que j'ai changé le lc_numeric variable à utiliser fr_FR (pour la France), et c'est la coutume française d'avoir son séparateur de groupe et sa virgule décimale représentés de cette manière.

Différents paramètres régionaux ont des conventions différentes pour le formatage des nombres, et le G et D les modificateurs de format sont capables de déterminer les caractères à utiliser pour les séparateurs de groupe et le séparateur décimal séparateur.

L'money Type de données

PostgreSQL a un money type de données qui génère ses valeurs formatées en tenant compte des paramètres régionaux.

Exemple :

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

Résultat :

$123,456.78

Changeons maintenant le lc_monetary variable et voyez comment cela affecte la sortie :

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

Résultat :

123 456,78 Eu

Dans ce cas, le séparateur de groupe est représenté par un espace et le séparateur décimal séparateur est une virgule.