我希望在我的where子句中有一个简单的条件,在其中一个列上:
当@PostTypeid is null那么这里应该是PostTypeid in (4,5),如果
@PostTypeid is not null再where子句应该PostTypeId = @PostTypeId
我试图为此目的使用案例,但我认为我对语法感到困惑.这是我到目前为止提出的:
(PostTypeid = case(@PostTypeId) when null then in (4,18) else @PostTypeId end)
Run Code Online (Sandbox Code Playgroud)
错误是当我使用时,我不认为这是一个有效的语法.这样做的正确方法是什么?谢谢.我试着把括号转移到其他几个地方但是徒劳无功.
谢谢
就像是:
WHERE
(@PostTypeID IS NULL AND PostTypeId IN (4, 5)) OR
(@PostTypeId IS NOT NULL AND PostTypeID = @PostTypeID)
Run Code Online (Sandbox Code Playgroud)
也许?