1

我想在 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然后我想要从其他地方获取其 ID的 where 条件,例如

(SELECT ID FROM Market WHERE ExternalId = @RegionId)

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

我该怎么办?

谢谢!

4

1 回答 1

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
于 2013-06-13T20:58:57.763 回答