我想在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。
我应该怎么做?
谢谢!
答案 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