【问题标题】:SQL where clause (with condition) help in IgnitionIgnition 中的 SQL where 子句(带条件)帮助
【发布时间】:2020-08-24 17:17:29
【问题描述】:

我目前有一个在 Ignition 中运行的 SQL 查询。如果我选择特定区域,它可以正常工作。问题是我想给它添加一个“ALL”。如果它具有“全部”选择​​,我希望能够忽略区域作为条件。

我不确定这是否可以通过 SQL 查询来处理。我正在对下拉列表运行查询以使用区域填充它。

这是我的代码:

SELECT *
FROM jobrecord
where
    jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
    jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}' AND
    area = '{Root Container.Group 5.Group 3.Dropdown 9.selectedLabel}'
ORDER BY jobnumber

【问题讨论】:

    标签: sql conditional-statements ignition


    【解决方案1】:

    您需要使用or where 子句条件。

    如果您传递 @Area 作为所有此脚本将返回所有区域。如果您传递一个特定的值,那么它将过滤到该区域值。

    declare @Area nvarchar(max) = 'someArea' 
    
    SELECT *
    FROM jobrecord
    where
        (@Area = 'ALL' or (jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
        jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}' AND
        area = @Area))
    ORDER BY jobnumber
    

    【讨论】:

      【解决方案2】:

      谢谢!

      我的最终代码:

      declare @Area nvarchar(max) = '{Root Container.Group 5.Group 3.Dropdown 9.selectedLabel}' 
      
      SELECT *
      FROM jobrecord
      where
          (@Area = 'ALL' and (jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
          jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}') or
          (area = @Area and jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' 
          and jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}'))
      ORDER BY jobnumber
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多