2013-01-04 8 views
18

Chcę wyświetlić/przekonwertować liczbę na znak (o tej samej długości) za pomocą funkcji to_char().funkcja to_char (liczba) w postgresie

w Oracle mogę napisać jak

SELECT to_char(1234) FROM DUAL 

Ale w PostgreSQL SELECT to_char(1234) nie działa.

Odpowiedz

31

Musisz podać maskę formatu. W PostgreSQL nie ma domyślnie:

select to_char(1234, 'FM9999'); 

Jeśli nie wiesz, ile cyfr istnieją tylko oszacować maksymalna:

select to_char(1234, 'FM999999999999999999'); 

Jeśli liczba ma mniej cyfr, nie będzie to miało jakiekolwiek skutki uboczne.

Jeśli nie potrzeba żadnego formatowania (jak przecinkiem, tysiące separatora), można też po prostu rzucić wartość do tekstu:

select 1234::text 
+0

Jak mogę znaleźć drugi argument (wartość z określoną liczbą cyfr) dla różnych wartości (o różnej długości). – jobi88

+0

@ jobi88: wszystko to jest udokumentowane w podręczniku: http://www.postgresql.org/docs/current/static/functions-formatting.html –

+0

Nie mogłem znaleźć dokładnej rzeczy dla mnie. Czy jest jakikolwiek sposób, aby uzyskać, ile 9s muszę dodać, aby uzyskać pełny numer. Na przykład w oracle mogę pisać jak. SELECT to_char (ac_no) z konta. (tutaj wartości ac_no mogą mieć różne długości). W takim przypadku jak mogę znaleźć drugi argument? – jobi88

0

można użyć:

1234||'' 

Działa na większości baz danych.