在case语句中将列设置为null

时间:2017-01-26 19:24:42

标签: sql-server tsql case

我正在尝试执行一个select语句,如果本地位变量为0,那么当列为空时需要有一个条件。我不知道如何在不执行column1 = NULL的情况下做到这一点,而DECLARE @s bit = 0 SELECT pkID FROM table1 WHERE column1 = CASE WHEN @s = 0 THEN NULL ELSE column1 END 没有给出正确的结果:

<%= f.select :role, Employee::ROLES.invert %>

关于如何使这项工作的任何想法?

1 个答案:

答案 0 :(得分:1)

您可以通过向WHERE子句添加两个条件来完成此操作:

Declare @s Bit = 0;
Select  pkID
From    table1
Where   (@S = 0 And Column1 Is Null)
Or      (@S <> 0)