SQL中的IF ELSE条件选择

时间:2013-06-13 20:46:18

标签: sql sql-server-2008

我想在SQL Server中执行if-else条件语句但不确定如何。

在存储过程中,我有以下参数:

@MarketId nvarchar (10),
@RegionId nvarchar (10)

以下声明:

select * from Interaction I
where 
(@MarketId = 0 ) OR (I.MarketId = (SELECT Id FROM Market WHERE ExternalId = @MarketId))

我想要检查@MarketId

的值
if @MarketId = 0

然后我希望I.MarketId的where条件从其他地方获取其ID(如

(SELECT ID FROM Market WHERE ExternalId = @RegionId)

否则,如果是1,那么我只想保持原样并从@MarketId而不是@RegionId获取ID。

我应该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:4)

这应该有效:

SELECT *
FROM Interaction I
WHERE ( @MarketID = 0 
        AND EXISTS (SELECT 1 FROM Market 
                    WHERE ExternalId = @RegionId AND Id = I.MarketID)
OR I.MarketID = @MarketID