【问题标题】:SQL statement for value from multiple field来自多个字段的值的 SQL 语句
【发布时间】:2014-04-23 23:36:28
【问题描述】:

目前我正在研究具有过滤功能的项目。 我的项目是用户可以选择的几个领域。 例如:状态、创建、发布、日期

情况:- 用户可以根据所有字段或提及字段中的任何组合过滤报告。

如果我选择 AND 条件,那么我需要提供所有需要的条件。如果我选择 OR 条件,如果选择了多个字段,它会给出一些错误的输出。

非常感谢任何建议。

【问题讨论】:

  • 这里没有足够的信息来了解您需要什么。
  • 您使用哪种数据库系统?
  • 那么,您是想将您的条件“与”在一起还是“或”在一起?
  • @paqogomez,我想根据用户选择的条件进行过滤。过滤部分有四个条件,用户可以使用一个或多个条件。所以如果我使用“AND”,我需要提供所有四个条件。如果用户只选择其中一个条件就会有问题。
  • @Guneli,我正在使用微软访问。

标签: sql ms-access filter


【解决方案1】:

您可以测试哪些值通过,哪些不通过。假设未传入的值为 NULL,请执行以下操作:

Select .....
from ....
where (Status = @Status or @Status is null)
and (Created=@Created or @Created is null)
and (Release = @Release or @Release is null)
and (Date = @Date or @Date is null)

【讨论】:

  • 我会根据你的建议试一试。
  • 谢谢比尔。您的解决方案帮助我解决了我面临的问题。
【解决方案2】:

根据用户可能指定的任何参数的存在,您可以检查并连接函数内的其他“where 条件”,并在最新步骤上运行选择。因此,初始选择如下所示:

         select ....
         where 1=1

然后通过检查传递的参数,您可以添加: sql:=sql||'还有.....'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2010-11-19
    相关资源
    最近更新 更多