列出记录的SQL过程where子句
我有一个存储过程,它将根据项目是否可用来查询和返回记录。这一部分很简单,我只是简单地传入一个变量来检查是否可用。 但我想知道的是,我如何在其中加入everything子句(即可用、不可用或所有) 现在的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值将选
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,则只返回具有匹配可用性的记录。