SQL这个语法多于吗
为什么要*1.呢?不可以直接/100吗?
回答
这实际上是一种比较便捷的写法,先看一个例子:
select cast(5/100 as decimal(18,2))
这个执行得到的结果是是 0.00,原因是因为整型计算,所以5/100=0,然后再转换,你再执行下面的例子:
select cast(5*1./100 as decimal(18,2))
这个得到的结果是0.05,原因是先做的5*1.的操作时将值转换为了浮点型,避免了计算精度丢失的问题,是一种常见的利用语言自身机制的取巧写法。