我想在SQL Server(存储过程)中执行CASE
语句,我应该检查它是否应该从另一个表中获取一些结果。SQL Server:案例与声明“不在”
我只是做这件事来说明示例(不工作!)
SELECT
*
FROM
cards
WHERE
CardID = @CardID
AND
CardID =
CASE WHEN @AlreadyOnDeck = 1 THEN
IN (
SELECT CardID FROM OnDeckTable WHERE CardID = @CardID
)
CASE WHEN @AlreadyOnDeck = 0 THEN
NOT IN (
SELECT CardID FROM OnDeckTable WHERE CardID = @CardID
)
END
我需要的情况下IN
/NOT IN
取决于@AlreadyOnDeck
可变
要动态生成应包含如果@AlreadyOnDeck是1而不是0,如果SQL语句的一部分吗? –
IIRC您无法通过使用SELECT获取值来填充IN。 – Treborbob