SQL 整数不变 四舍五入保留2位小数

cast(round(100,2) as decimal(10,2))
这样整数也会保留2位小数 结果为100.00
我想要如果是整数就不改变,如果是小数才四舍五入保留2位
当然最好连1-2位小数都不改变,要超过2位小数才四舍五入保留2位最好
如果不行,整数不变,不是整数保留2位小数也行
最新回答
爷是那么黑

2024-11-29 14:26:16

你就直接用
select round(100.146,2) from dual--100.15
select round(100.14,2) from dual--100.14
select round(100.1,2) from dual--100.1
select round(100,2) from dual--100
追问
直接round是不行的,不然我也不会提问了
round只是四舍五入,并不负责截断,我就是开始光round,才发现怎么出现科学计数
另外,我是插入,不是查询
追答
那你把你的出现科学计数的数据贴出来看看,插入和查询跟这个有什么关系,我这只是测试用,到时候替换不就行了,插入不还是insert into table select  字段转换 from table 么,都要用到select 的
追问
update findj set ddyl=round(dingd*jyongl,2) where scid='SF0034'
ddyl是nvarchar类型的
追答
我是指round(dingd*jyongl,2),这个里面你说出现了科学计数法,那么具体是什么数据会出现这个呢?