Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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子句_Sql_Stored Procedures_Where Clause - Fatal编程技术网

列出记录的SQL过程where子句

列出记录的SQL过程where子句,sql,stored-procedures,where-clause,Sql,Stored Procedures,Where Clause,我有一个存储过程,它将根据项目是否可用来查询和返回记录。这一部分很简单,我只是简单地传入一个变量来检查是否可用。 但我想知道的是,我如何在其中加入everything子句(即可用、不可用或所有) 现在的where子句是 where availability = @availability 可用性的值为1或0,没有其他值。您可以使用NULL表示所有内容 WHERE (@availability IS NULL OR availability = @availability) 传递NULL值将选

我有一个存储过程,它将根据项目是否可用来查询和返回记录。这一部分很简单,我只是简单地传入一个变量来检查是否可用。 但我想知道的是,我如何在其中加入everything子句(即可用、不可用或所有)

现在的where子句是

where availability = @availability

可用性的值为1或0,没有其他值。

您可以使用NULL表示所有内容

WHERE (@availability IS NULL OR availability = @availability)
传递
NULL
值将选择所有内容

WHERE (@availability IS NULL OR availability = @availability)

此查询将使用
可用性
上的索引(如果有)。

多种方法。最简单的方法是将@availability的默认值设置为null,然后where子句如下所示

WHERE (@availability IS NULL OR availability = @availability)

不知道@availability的类型,但假设-1=everything,那么您可以简单地执行以下操作

where @availability = -1 OR availability = @availability

你是在问如何检索所有记录吗?然后完全不使用where子句。Availability为1或0,如果用户希望看到所有内容,我将如何返回所有内容。因此,这将返回where Availability=@Availability和其他内容。如果@Availability为NULL,则返回所有内容。若@availability不为NULL,则只返回具有匹配可用性的记录。