Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL WHERE CASE表达式不起作用_Sql_Sql Server_Case - Fatal编程技术网

SQL WHERE 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

我收到了一段非常大的代码,它在循环查询中抛出了一个CASE表达式错误,有人能看看这段代码并告诉我这是导致问题的原因还是应该这样做

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列的数据类型是什么?谢谢,很遗憾,仍然会出现相同的错误。