web-dev-qa-db-fra.com

to_char (nombre) fonction dans postgres

je veux afficher/convertir un nombre en caractère (de même longueur) à l'aide de la fonction to_char ().

Dans Oracle, je peux écrire comme

SELECT to_char(1234) FROM DUAL

Mais dans postgres SELECT to_char(1234) ne fonctionne pas.

19
jobi88

Vous devez fournir un masque de format. Dans PostgreSQL, il n'y a pas de valeur par défaut:

select to_char(1234, 'FM9999');

Si vous ne savez pas combien de chiffres il y a, estimez simplement le maximum:

select to_char(1234, 'FM999999999999999999');

Si le nombre a moins de chiffres, cela n'aura aucun effet secondaire.

Si vous n'avez besoin d'aucun formatage (comme le point décimal, le séparateur de milliers), vous pouvez également convertir la valeur en texte:

select 1234::text
36

vous devez spécifier un format numérique, c'est-à-dire:

to_char(1234, '9999')

Jetez un coup d'oeil ici pour plus d'informations: http://www.postgresql.org/docs/current/static/functions-formatting.html

5
Lorenzo L

La fonction CAST a fonctionné pour moi.

SELECT CAST(integerv AS text) AS textv
FROM (
       SELECT 1234 AS integerv
     ) x

OU 

SELECT integerv::text AS textv
FROM (
       SELECT 1234 AS integerv
     ) x
0
changed