簡體   English   中英

在帶有IN條件的where子句中使用CASE

[英]using CASE in where clause with IN condtion

我有下面的代碼,該代碼需要基於參數的條件條件。這可以實現嗎? 如何使用這種類型的sql。我沒有看到任何變差方法來做到這一點

BEGIN
DECLARE @INPUT AS VARCHAR(256)
set @input = 'NASS'
SELECT
sum(TRY_PARSE(DV.[ERSDataValues_AttributeValue1] as decimal)) AS NEWVALUE

FROM [VegetablesCoSD-Full].[CoSD].[ERSDataValues] DV LEFT JOIN [CoSD].        [ERSTimeDimension_LU] TD

ON DV.ERSDataValues_ERSTimeDimension_ID = TD.ERSTimeDimension_ID

WHERE DV.ERSDataValues_ERSStatisticType_ID1 = 45 AND 
DV.ERSDataValues_ERSCommodity_ID = 519 AND
DV.ERSDataValues_ERSGeography_ID = 3346 AND
DV.ERSDataValues_ERSUnit_ID1 = 89 AND         

TD.ERSTimeDimension_TimeDimensionType_ID = 11 and 
CASE  
when @INPUT = 'NASS' THEN
TD.ERSTimeDimension_Month in   

('1','2','3','4','5','6','7','8','9','10','11','12')
WHEN @INPUT = 'BLS' THEN
TD.ERSTimeDimension_Month IN('JAN','FEB')
END

您可以改用OR ,如下所示:

AND
(   (@INPUT = 'MASS' AND TD.ERSTimeDimension_Month in ('1','2','3','4','5','6','7','8','9','10','11','12'))
    OR
    (@INPUT = 'BLS' AND TD.ERSTimeDimension_Month IN('JAN','FEB')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM