如何在存储过程的子句的位置附加SQL查询???
IN存储过程我已经定义了1个参数@ViewType,它接受3个值中的1个'Uploaded','Not Uploaded'和'ALL'。根据ViewType的值,条件应用于caluse(下面的查询中的FileType)。
一些选择查询
- > if(@ViewType ='Uploaded')
WHERE ContractNumber = 1234 AND DocumentType ='VendorContract'AND ID = 54 AND FileType IS NOT NULL
- > if(@ViewType ='Not Uploaded')
WHERE ContractNumber = 1234 AND DocumentType ='VendorContract'AND ID = 54 AND FileType IS 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