Sql server 2008 参数和值之间的SQL差异

Sql server 2008 参数和值之间的SQL差异,sql-server-2008,Sql Server 2008,对不起,如果我的标题有点误导,但不完全确定如何表达它 为什么以下两种说法会有区别: SELECT * FROM tbl1 LEFT OUTER JOIN tbl2 ON tbl1.num = tbl2.tbl1Num LEFT OUTER JOIN tbl3 ON tbl2.num = tbl3.tbl2Num WHERE tbl2.intNum = 123 OR 123 = -1 及 我们运行了上面两个查询,它实际上给了我们不同的结果?我们最终把它变成了一个工会来

对不起,如果我的标题有点误导,但不完全确定如何表达它

为什么以下两种说法会有区别:

SELECT * 
FROM tbl1 LEFT OUTER JOIN 
      tbl2 ON tbl1.num = tbl2.tbl1Num LEFT OUTER JOIN
      tbl3 ON tbl2.num = tbl3.tbl2Num
WHERE tbl2.intNum = 123 OR 123 = -1

我们运行了上面两个查询,它实际上给了我们不同的结果?我们最终把它变成了一个工会来解决这个问题,但我真的很想理解为什么会发生这种情况


提前谢谢

缺少参数类型:

declare @intNum int = 123

输出结果或性能结果方面的差异?当有不同的输出时,表中有哪些数据?您从查询中得到了什么输出?输出方面的差异。使用变量时返回866行,但使用实际int(123)时仅返回14行。两种情况下的数据完全相同行数不同,但相同的数据不确定我是否理解得很好。你是说返回更多行的那一个实际上包含重复行吗?对不起,上面的代码中有一个错误类型,但我们在服务器上运行的实际查询中没有,有点累:-)
declare @intNum int = 123