SQL WHERE CASE表达式不起作用

时间:2017-05-25 10:10:26

标签: sql sql-server case

我已经获得了一段非常大的代码,并且它在循环查询中抛出CASE表达式的错误,有人可以查看此代码并告诉我这是否是&#39 ; s导致问题或应该这样做?

WHERE
case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end > 0

很抱歉,我无法提供更多信息,正如我所说,这是在循环查询部分,我对循环查询很糟糕。

2 个答案:

答案 0 :(得分:0)

首先,CASE语句必须是表达式的一部分,而不是表达式本身。

应该是

WHERE
0 < case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end 

答案 1 :(得分:0)

如果我猜测,T.TABLE_NAME不是数值。因此,在使用按位运算符时会出现错误。

如果它是数字,那么写起来会更简单:

WHERE (POWER(2, 5) & T.TABLE_NAME) > 0

甚至更简单:

WHERE (32 & T.TABLE_NAME) > 0