2013-01-04 3 views
18

Voglio visualizzare/convertire un numero in carattere (della stessa lunghezza) utilizzando la funzione to_char().to_char (number) function in postgres

in Oracle posso scrivere come

SELECT to_char(1234) FROM DUAL 

Ma in Postgres SELECT to_char(1234) non funziona.

risposta

31

È necessario fornire una maschera di formato. In PostgreSQL non v'è alcun valore predefinito:

select to_char(1234, 'FM9999'); 

Se non sai quante cifre ci sono, basta stimare la massima:

select to_char(1234, 'FM999999999999999999'); 

Se il numero ha meno cifre, questo non avrà eventuali effetti collaterali.

Se non avete bisogno di alcuna formattazione (come punto decimale, separatore delle migliaia) si può anche semplicemente il cast del valore al testo:

select 1234::text 
+0

Come posso trovare il secondo argomento (valore con il numero di cifre specificato) per valori diversi (di diversa lunghezza). – jobi88

+0

@ jobi88: è tutto documentato nel manuale: http://www.postgresql.org/docs/current/static/functions-formatting.html –

+0

Non sono riuscito a trovare la cosa esatta per me. C'è un modo per ottenere, quanti 9 ho bisogno di aggiungere per ottenere il numero completo. Ad esempio in oracle posso scrivere come. SELEZIONA to_char (ac_no) dall'account. (qui i valori ac_no possono avere lunghezze diverse). In questo caso come posso scoprire il secondo argomento ?? – jobi88

0

È possibile utilizzare:

1234||'' 

Funziona sulla maggior parte dei database.