sql - 如果存在还是存在?

标签 sql sql-server conditional-statements exists

是否可以在单个 IF SQL 语句中测试两个 EXISTS 条件?我已经尝试过以下方法。

IF EXIST (SELECT * FROM tblOne WHERE field1 = @parm1 AND field2 = @parm2) 
   OR 
   EXIST (SELECT * FROM tblTwo WHERE field1 = @parm5 AND field2 = @parm3) 

我尝试在其中添加额外的 IF 和括号,但无济于事。

你能帮我找到正确的语法吗?

最佳答案

如果是 SQL Server

IF EXISTS (SELECT *
           FROM   tblOne
           WHERE  field1 = @parm1
                  AND field2 = @parm2)
    OR EXISTS (SELECT *
               FROM   tblTwo
               WHERE  field1 = @parm5
                      AND field2 = @parm3)
  PRINT 'YES' 

没问题,请注意,唯一改变的是 EXISTS 而不是 EXIST。对此的计划可能是一个UNION ALL,如果第一个测试为真,则短路。

关于sql - 如果存在还是存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286230/

相关文章:

sql - TSQL: "IN"子句中的 NULL

SQL Server 将 Table1 中的所有行与 Table2 中的所有行进行匹配

conditional-statements - 如何为变量添加条件 - GAMS

mysql - 使用带有 LIKE 子句的正则表达式

sql - .Net SqlCommand.ExecuteNonQuery 中的查询超时,适用于 SQL Server Management Studio

SQL Server - 查找不删除临时表的 SP

sql - 加入两个具有 where 子句的选择查询

c# - CommandBehavior.SequentialAccess 是否有任何性能提升?

python - 根据限制从右开始用单词拆分字符串

r - 根据大于或小于前一列中的条件,向 R 中的数据框添加一列