SQL WHERE是

时间:2015-04-27 02:35:40

标签: sql search where

我正在通过搜索栏进行数据库查询,并希望它有时会产生所有结果(取决于输入的内容)

我知道,对于SELECT,您可以使用*来选择所有列。是否有类似的SQL语法:即WHERE name IS *基本上始终为真?

编辑以澄清:

该子句的本质是一个变量用于设置名称(我实际上无法更改子句,这是明确的)。即WHERE name IS [[inputName]](inputName由搜索栏决定)

3 个答案:

答案 0 :(得分:1)

WHERE ISNULL(name, '') = ISNULL(name, '')

(假设'名称'是字符串类型)

只需自己制作列参考。但是,如果这是查询的唯一目标,为什么不反对省略WHERE子句?

答案 1 :(得分:0)

如果要在SQL语句中返回所有结果,可以省略WHERE子句:

SELECT <* or field names> FROM <table>;

只有在想要过滤特定字段的数据时,才应使用WHERE。在您的情况下,您根本不想过滤。

答案 2 :(得分:0)

实际上在这种情况下你根本不需要WHERE条款。但是如果你坚持那么你应该编写你的谓词,所以它总是返回true。这可以通过多种方式完成:

任何谓词如:

WHERE 1=1

使用专栏:

WHERE name = name OR name is null

使用LIKE

WHERE name LIKE '%' OR name is null

传递参数:

WHERE name = @name OR @name is null

你当然可以想到更多。但我认为你需要最后一个。如果您想要所有行,请从应用层传递NULL