我从DB那里得到了回报给我内插和小数。让我们说:
从表中选择美元
有时美元是整数(1,2),有时它是小数(1.54,2.32)。如果我这样做:
to_char(美元,'99999999.99'),当它是十进制时,没关系。但是,如果它是整数,我得到1.00或2.00。
如果数据是整数,我不想没用0。我怎样才能做到这一点?如果它是整数,只需输入整数,如果是十进制,则输入十进制。
提前谢谢。
答案 0 :(得分:0)
嗯,数据类型没有改变,所以你在谈论存储在固定或浮点表示中的整数值。可能最简单的方法是:
select (case when to_char(dollar, '99999999.99') like '%.00'
then to_char(dollar, '99999999')
else to_char(dollar, '99999999.99')
end)
即转换。如果最后三个字符是“.00”,则在没有它们的情况下进行转换。如果您不喜欢双重转换,也可以使用算术执行此操作:
select (case when 100*cast(dollar / 100 as int) = dollar
then to_char(dollar, '99999999')
else to_char(dollar, '99999999.99')
end)
但是,我总是担心整数和浮动值之间的比较可能会有一些非常小的数量,所以我更喜欢第一种方法。