在SQL中选择多条件

时间:2016-05-09 17:19:30

标签: sql

我想在SQL中搜索具有多个条件的student,例如:nameage。但是我们可能只有姓名或只有年龄值,或者我们可能对用户的信息都有价值。我使用HTML中的表单来获取值。我不知道如何编写查询以选择它们是否未填充所有文本字段。

如果我只有名称值,则查询为

SELECT * FROM stuTBL WHERE name = @name

如果我只有age值,则查询

SELECT * FROM stuTBL WHERE age = @age

如果我拥有所有值,则查询为

SELECT * FROM stuTBL WHERE name = @name AND age = @age

但是什么查询将涵盖用户输入的内容?

3 个答案:

答案 0 :(得分:0)

检查@name = ''@age = ''以及条件。如果@name为空,则仅检查年龄条件。如果@age为空,则仅检查名称条件。

如果两个参数都有有效数据,那么这两个条件都可以正常工作

SELECT * 
FROM stuTBL 
WHERE (name = @name OR ISNULL(@name, '') = '')
      AND (age = @age OR ISNULL(@age, '') = '')

答案 1 :(得分:0)

试试这个

SELECT * 
CASE name
    WHEN name = (@name OR @name = '')
CASE age 
    WHEN age = (@age OR @age = '')
END
FROM stuTBL

答案 2 :(得分:0)

@austin wernli评论是一个答案,我找到了另一种方法来使用

SELECT * FROM stuTBL WHERE (name = @name或@name为null) AND(年龄= @age或@age为空)