怎么用sql语句将字段拆分为整数和小数两个字段,要求小数保留小数点和两位小数

1

yzm189640 发布于 2021-9-3 10:36
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
zsh331Lv8专家互助
发布于2021-9-3 10:57

= = ###

-- 以MySQL为例:保留小数或整数时,是否需要四舍五入,也应该在考虑范围;不同数据库写法略有不同,自行扩展!

————————————————————————

-- select floor(1.636) as a,format(1.636-floor(1.636),2) as b

-- select floor(1.636) as a,TRUNCATE(1.636-floor(1.636),2) as b

-- select floor(1.636) as a,round(1.636-floor(1.636),2) as b

————————————————————————

  • yzm189640 yzm189640(提问者) 要把小数点前边的0去掉怎么写嘞 就是分成1 和 .636
    2021-09-03 11:15 
  • zsh331 zsh331 回复 yzm189640(提问者) = = 把小数位前面的0截取掉即可。
    2021-09-03 11:21 
最佳回答
0
cttbjLv5见习互助
发布于2021-9-3 10:41
提供个思路,先round保留两位小数,然后split小数点取出前后两部分。
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-9-3 10:43

不说是什么数据库都是耍流氓

最佳回答
0
江蓠Lv8初级互助
发布于2021-9-3 10:43(编辑于 2021-9-3 10:44)

参考着写吧:

select

(单价-进价)*(1-折扣)*数量 as 利润,

floor((单价-进价)*(1-折扣)*数量) as 利润整数,

substr((单价-进价)*(1-折扣)*数量,length(floor((单价-进价)*(1-折扣)*数量))+1,length((单价-进价)*(1-折扣)*数量)-length(floor((单价-进价)*(1-折扣)*数量))) as 利润小数

from 订单,订单明细

where 订单.订单ID=订单明细.订单ID

  • 2关注人数
  • 1239浏览人数
  • 最后回答于:2021-9-3 10:57
    请选择关闭问题的原因
    确定 取消
    返回顶部