两种不同格式的不同数字

时间:2012-10-31 10:39:11

标签: sql formatting

是否有任何简单而干净的解决方案可以为不同的数字设置两种不同的格式 例如。 0.00应为0,所有其他数字应为x.xxx。

到目前为止我的解决方案:

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

我不高兴,因为我认为有一个更容易的解决方案。

2 个答案:

答案 0 :(得分:0)

你也可以使用CASE-WHEN ......

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

我认为这更具可读性 - 但这是主观的......

答案 1 :(得分: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