相关疑难解决方法(0)

或SQL运算符短路

我想咨询SQL Server OR短路

码:

   DECLARE @tempTable table
      (
         id int
      )
      INSERT @tempTable(id) values(1)

      DECLARE @id varchar(10)
      SET @id = 'x'
      SELECT * FROM @tempTable WHERE 1=1 OR id = @id --successfully
      SELECT * FROM @tempTable WHERE @id = 'x' OR id = @id --Exception not Convert 'x' to int
Run Code Online (Sandbox Code Playgroud)

为什么?1 = 1且@ id ='x'为真.

SQL Server OR运算符:是否有短路功能?

谢谢

t-sql sql-server query-optimization short-circuiting

17
推荐指数
2
解决办法
1万
查看次数