为什么查询select(1/2)* 100在SQL Server 2005中返回0而不是50

时间:2010-08-09 06:19:51

标签: sql sql-server sql-server-2005

我想得到50作为输出而不是0。

4 个答案:

答案 0 :(得分:8)

这是因为整数除法; 1/2 = 00 * 100 = 0

使用1/2.0 * 100代替

答案 1 :(得分:1)

这可能是因为SQL Server使用整数运算进行计算。 1/2的整数部分为0,并且0 * 100 = 0。

答案 2 :(得分:0)

它可能在1/2上进行整数除法,将其评估为0,因此整个语句为零。

答案 3 :(得分:0)

至少在C#,Java和VB.net中:整数算术。

为什么期望SQL在将表达式评估到其他语言方面有所不同?