如果存在或存在?

时间:2013-01-11 20:36:00

标签: sql sql-server conditional exists

是否可以在单个EXISTS SQL语句中测试两个IF条件?我尝试了以下内容。

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

我试过在那里添加额外的IF和括号,但无济于事。

你能用正确的语法帮助我吗?

3 个答案:

答案 0 :(得分:14)

如果是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短路。

答案 1 :(得分:5)

你在EXIST结束时错过了一个S

EXIST S ,而不是EXIST

答案 2 :(得分:-1)

你也可以写一个IN语句

IF EXISTS (SELECT * FROM tblOne WHERE field1 = @parm1 AND field2 IN (@parm2,@parm3)