是否有任何简单而干净的解决方案可以为不同的数字设置两种不同的格式 例如。 0.00应为0,所有其他数字应为x.xxx。
到目前为止我的解决方案:
select decode(to_char(0.000, '90D999'),'0.000', 0, (to_char (0.000, '99990D99999'))) from dual
我不高兴,因为我认为有一个更容易的解决方案。
答案 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