代码之家  ›  专栏  ›  技术社区  ›  Krishna Kumar

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

  •  2
  • Krishna Kumar  · 技术社区  · 14 年前

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

    4 回复  |  直到 14 年前
        1
  •  8
  •   NullUserException Mark Roddy    14 年前

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

    使用 1/2.0 * 100 相反

        2
  •  1
  •   ggg    14 年前

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

        3
  •  0
  •   cohensh    14 年前

    它可能在1/2上做整数除法,将其计算为0,所以整个语句为零。

        4
  •  0
  •   gbn    14 年前

    C、JAVA和VB.NET中至少相同:整数运算。

    为什么在将表达式计算为其他语言时,您希望SQL有任何不同?