如何在存储过程的where子句中追加SQL查询???
在存储过程中,我定义了 1 个参数 @ViewType,它接受 3 个值“已上传”、“未上传”和“全部”中的 1 个。根据 ViewType 的值,条件应用于 where caluse(下面查询中的 FileType)。
一些选择查询
-> if(@ViewType = '已上传')
WHERE ContractNumber=1234 AND DocumentType='VendorContract' AND ID=54 AND FileType IS NOT NULL
-> if(@ViewType = '未上传')
WHERE ContractNumber=1234 AND DocumentType='VendorContract' AND ID=54 AND FileType 为 NULL
-> if(@ViewType = 'ALL')
WHERE ContractNumber=1234 AND DocumentType='VendorContract' AND ID=54
最佳答案
您可以将此逻辑重构为单个 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
关于mysql - 如何在 SQL 存储过程中追加查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644845/