1

異なる数値に対して2つの異なるフォーマットを設定するための簡単でクリーンなソリューションはありますか?
たとえば、0.00 は 0 で、他のすべての数値は x.xxx である必要があります。

これまでの私の解決策:

select decode(to_char(0.000, '90D999'),'0.000', 0, (to_char (0.000, '99990D99999'))) from dual

もっと簡単な解決策があると思うので、私は満足していません。

4

2 に答える 2

0

simple-case-expression を使用して、少しきれいにすることができます。

select case my_value when 0 then '0' else to_char(my_value, '90D999') end
from dual;

http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htmを参照してください。

于 2012-10-31T11:45:22.567 に答える
0

CASE-WHEN を使用することもできます...

SELECT (CASE WHEN MY_VALUE=0 THEN '0' ELSE to_char(MY_VALUE, '90D999') END) 
FROM DUAL

これはもう少し読みやすいと思いますが、それは主観的なものです...

于 2012-10-31T11:35:20.753 に答える