Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 当事情是真的时,有没有办法忽略和?_Sql_Sql Server_Tsql_Case - Fatal编程技术网

Sql 当事情是真的时,有没有办法忽略和?

Sql 当事情是真的时,有没有办法忽略和?,sql,sql-server,tsql,case,Sql,Sql Server,Tsql,Case,我有这个Where条款 但我需要一个额外的,应该被忽略,如果它的值是假的,我会想要所有的证书 AND cc.industrial = CASE WHEN @industrial = 0 THEN Do Nothing Else @industrial 这通常表示为: AND (@industrial = 0 OR ccc.industrial = @industrial) 这通常表示为: AND (@industrial = 0 OR ccc.ind

我有这个Where条款

但我需要一个额外的,应该被忽略,如果它的值是假的,我会想要所有的证书

AND cc.industrial = CASE WHEN @industrial = 0 THEN Do Nothing
                     Else @industrial

这通常表示为:

AND (@industrial = 0 OR ccc.industrial = @industrial)

这通常表示为:

AND (@industrial = 0 OR ccc.industrial = @industrial)

听起来您只是想添加一个谓词,在两个不同的条件之间进行OR运算

AND (@industrial = 0 or ccc.industrial = @industrial)

听起来您只是想添加一个谓词,在两个不同的条件之间进行OR运算

AND (@industrial = 0 or ccc.industrial = @industrial)

您可以使用CASE函数执行以下操作:

AND 1 = (CASE WHEN @industrial = 0 THEN 1 
              ELSE CASE WHEN cc.industrial = @industrial THEN 1 END
         END)
或者,如果cc.industrial不可为空,则可能:

AND cc.industrial = CASE WHEN @industrial = 0 THEN cc.industrial
                     Else @industrial END

您可以使用CASE函数执行以下操作:

AND 1 = (CASE WHEN @industrial = 0 THEN 1 
              ELSE CASE WHEN cc.industrial = @industrial THEN 1 END
         END)
或者,如果cc.industrial不可为空,则可能:

AND cc.industrial = CASE WHEN @industrial = 0 THEN cc.industrial
                     Else @industrial END

不要在where子句中使用大小写表达式,请坚持和/或相反。不要在where子句中使用大小写表达式,请坚持和/或相反。我想我们在这里被绊倒了,我想要所有值,如果@industrial是0@christopherclark这正是该条款的作用。如果为0,则其计算结果为true。如果它不是0,它会评估ccc.industrial是否等于该值,只有这样才是真的。哇,这是一个艰难的思考过程。谢谢,这确实奏效了。我想我们在这里被绊倒了,我想要所有的价值观,如果@industrial是的话0@christopherclark这正是该条款的作用。如果为0,则其计算结果为true。如果它不是0,它会评估ccc.industrial是否等于该值,只有这样才是真的。哇,这是一个艰难的思考过程。谢谢,这确实有效。