如何在Firebird中对数字取整,避免类型转换后出现多余小数位?
Firebird数值转字符串去除末尾小数零的解决方案
问题原因
你当前的quantity字段属于带固定小数位的数值类型(如DECIMAL/NUMERIC),直接转字符串会保留字段定义的全部小数位,因此会出现.000的后缀。
解决方法
你只需要先把quantity转成整数类型抹除小数部分,再转成字符串拼接即可,修改后的SQL如下:
with data as ( select article_name || cast(cast(quantity as integer) as varchar(50)) as quantity, PREORDER_ID as PID from preorder_item ) SELECT * FROM DATA
特殊场景适配
如果你需要先对小数部分做四舍五入再取整,而非直接截断小数,可以先调用ROUND函数处理:
with data as ( select article_name || cast(cast(round(quantity, 0) as integer) as varchar(50)) as quantity, PREORDER_ID as PID from preorder_item ) SELECT * FROM DATA
内容的提问来源于stack exchange,提问作者Michael Pietzsch
相关产品推荐
相关产品推荐

