【发布时间】:2016-10-28 16:30:54
【问题描述】:
我正在从一个名为 [tagged] 的列中选择记录,它默认为零。
我的问题是当@tagged 变量为NULL 时,我想同时选择0,1 值。这让我觉得我应该做一个IF/ELSE,但我的尝试失败了。
---简单的例子:
declare @tagged int = NULL
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND tagged = @tagged
许多 DBA 都推荐使用 CASE 子句。 但我需要帮助知道在哪里添加它。
我是否将其添加到查询中?
我的微弱尝试是这样的:
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND (
CASE @tagged
WHEN 0 THEN (tagged = 0)
WHEN 1 THEN (tagged = 1)
ELSE (tagged IN(0,1)
END
)
【问题讨论】:
-
CASE可用于JOIN,如here 所示。WHERE子句可以使用相同的模式。