sql中(1+1/2)*150等于多少

来源:百度知道 编辑:UC知道 时间:2024/06/30 06:26:49
这是个SQL问题。。。

这个问题的关键在于 SQL 对数据类型的默认转换。当每一步的计算式中计算符的两边全部为整型时,它会自作聪明的将结果转为整型(而且是舍去小数位,直接截断,而不是四舍五入)。
例如:
select 2/3 结果为 0
select 4/3 结果为 1
select 5/3 结果为 1

如果计算式中含有实数,则结果也为实数。
例如:
select 2.0/3 结果为 0.666666
select 4/3.0 结果为 1.333333
select 5.0/3.0 结果为 1.666666

知道这个原理后,那么楼主的问题就好解决了。
答案是 150

select (1 + 1/2)*150 from dual
结果:225

在查询分析器下运行:print (1+1/2)*150
自己看看就知道是多少了

150。
如果想让它得到正确的数值:
print (1+cast(1 as numeric(9,2))/cast(2 as numeric(9,2)))*150