我已经获得了一段非常大的代码,并且它在循环查询中抛出CASE表达式的错误,有人可以查看此代码并告诉我这是否是&#39 ; s导致问题或应该这样做?
WHERE
case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end > 0
很抱歉,我无法提供更多信息,正如我所说,这是在循环查询部分,我对循环查询很糟糕。
答案 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