0

您能否告诉我存储过程是否允许处理如下复合条件:

if(
    ( (select Count(*) from dbo.Membership where EmailID=@emailID) >0) 
                                  || 
    ((select Count(*) from dbo.Allocation where ResourceEmail=@emailID)>0))
)
4

1 回答 1

5

使用OR代替||

如果只是检查是否存在更优化,我会使用 EXISTS 而不是 COUNT 因为它会在第一次存在时停止,而不是全部计数......

IF EXISTS(SELECT 1 FROM dbo.Membership WHERE EmailId = @emailID)
    OR EXISTS(SELECT 1 FROM dbo.Allocation where ResourceEmail=@emailID)
    BEGIN
       -- emailID exists in one of the 2 tables
    END
于 2012-10-24T15:39:40.420 回答