【问题标题】:How to Append Query in SQL Stored Procedure如何在 SQL 存储过程中追加查询
【发布时间】:2019-04-12 05:09:07
【问题描述】:

如何在存储过程的where子句中追加SQL查询???

在存储过程中,我定义了 1 个参数 @ViewType,它接受 3 个值中的 1 个值“已上传”、“未上传”和“全部”。根据 ViewType 的值,条件应用于 where caluse(以下查询中的 FileType)。

一些选择查询

-> if(@ViewType = '上传')

WHERE Con​​tractNumber=1234 AND DocumentType='VendorContract' AND ID=54 AND FileType IS NOT NULL

-> if(@ViewType = '未上传')

WHERE Con​​tractNumber=1234 AND DocumentType='VendorContract' AND ID=54 AND FileType IS NULL

-> if(@ViewType = 'ALL')

WHERE Con​​tractNumber=1234 AND DocumentType='VendorContract' AND ID=54

【问题讨论】:

    标签: mysql database stored-procedures where-clause


    【解决方案1】:

    您可以将此逻辑重构为单个 WHERE 子句:

    WHERE
        (        
            (@ViewType = 'Uploaded' AND FileType IS NOT NULL) OR
            (@ViewType = 'Not Uploaded' AND FileType IS NULL) OR
            @ViewType = 'ALL'
        ) AND
        ContractNumber = 1234 AND DocumentType = 'VendorContract' AND ID = 54
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2014-01-22
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多