我在查询中使用了如下的select语句:
FLOOR(CAST(amount AS DECIMAL(16))/rate/100))
即使我希望我的结果是123,上面的select语句返回的却是123.0。如何删除"点0"?只显示123?
这是一个棘手的需求,因为本质上您希望将数字显示为浮点数,除非小数部分为零,在这种情况下您希望显示为整数。我们可以尝试将其转换为文本,然后替换为regex。
REGEXP_REPLACE(
FLOOR(CAST(amount AS DECIMAL(16)) / rate / 100)::text,
'.0+$',
''
)
我能想到的最简单的方法:
select ('16'::numeric/.0013/100)::int
123