SQL to_char在不同的情况下需要整数和小数
我从DB得到一个返回,给我整数和小数。比如说: 从表中选择美元 有时美元是整数(1,2),有时是小数(1.54,2.32)。如果我这样做: 对于_char(美元,'9999999.99'),当它是十进制时,就可以了。但是,如果它是整数,我得到了1.00或2.00 如果数据是整数,我不希望有无用的0。我该怎么做?如果它是整数,就放整数,如果它是小数,就放小数SQL to_char在不同的情况下需要整数和小数,sql,Sql,我从DB得到一个返回,给我整数和小数。比如说: 从表中选择美元 有时美元是整数(1,2),有时是小数(1.54,2.32)。如果我这样做: 对于_char(美元,'9999999.99'),当它是十进制时,就可以了。但是,如果它是整数,我得到了1.00或2.00 如果数据是整数,我不希望有无用的0。我该怎么做?如果它是整数,就放整数,如果它是小数,就放小数 提前谢谢。好吧,数据类型不会改变,所以您所说的是以固定或浮点表示形式存储的整数值。最简单的方法可能是: select (case when
提前谢谢。好吧,数据类型不会改变,所以您所说的是以固定或浮点表示形式存储的整数值。最简单的方法可能是:
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)
然而,我总是担心整数和浮点值之间的比较可能会有一些非常小的偏差,所以我更喜欢第一种方法