SQL WHERE CASE表达式不起作用
我收到了一段非常大的代码,它在循环查询中抛出了一个CASE表达式错误,有人能看看这段代码并告诉我这是导致问题的原因还是应该这样做SQL WHERE CASE表达式不起作用,sql,sql-server,case,Sql,Sql Server,Case,我收到了一段非常大的代码,它在循环查询中抛出了一个CASE表达式错误,有人能看看这段代码并告诉我这是导致问题的原因还是应该这样做 WHERE case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end > 0 很抱歉,我不能提供更多信息,因为我说过这是在循环查询部分,我对循环查询很糟糕 首先,CASE语句必须是表达式的一部分,而不是表达式本身 应该是 WHERE 0 < case when POW
WHERE
case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end > 0
很抱歉,我不能提供更多信息,因为我说过这是在循环查询部分,我对循环查询很糟糕 首先,CASE语句必须是表达式的一部分,而不是表达式本身 应该是
WHERE
0 < case when POWER(2, 5) & T.TABLE_NAME = POWER(2, 5) then 1 else 0 end
在哪里
0<当功率(2,5)和T.TABLE_NAME=功率(2,5)时的情况,则1否则0结束
如果我猜,T.TABLE\u NAME
不是一个数值。因此,在对其使用按位运算符时,将出现错误
如果它是数字的,则更容易编写:
WHERE (POWER(2, 5) & T.TABLE_NAME) > 0
或者更简单地说:
WHERE (32 & T.TABLE_NAME) > 0
,提供示例数据,您的预期输出是什么..?它是多少DB?你有什么错误?我自己作为一个“人类解析器”在试图理解这个表达式时也会给出一个错误……如果是ssms,那么我会假设是SQL Server。尝试使用HAVING表达式,而不是在关键字“CASE”附近出现错误“语法不正确”T.TABLE_NAME列的数据类型是什么?谢谢,很遗憾,仍然会出现相同的错误。