0

我有一个场景,我试图根据 select 语句中的条件从字段/列中检索多个值。我试图使用案例语句,但问题是案例语句不支持字段/列中的多个值。是否有任何解决方法或任何其他方式来实现这一目标?

SELECT col1, col2, col3, Period         
FROM   tblMonthlyCost

WHERE  Period = CASE

    WHEN Datepart(MONTH, Getdate()) = 8 
        AND Datediff(DAY, '07/31/2012', Getdate()) <= 3 THEN Period IN
            ('0112','0212','0312','0412','0512','0612') 
    WHEN Datepart(MONTH, Getdate()) = 8 
        AND Datediff(DAY, '07/31/2012', Getdate()) > 3 THEN Period IN
        ('0112','0212','0312','0412','0512','0612','0712')      
END  
4

1 回答 1

2

为什么不这样做呢?

SELECT  col1,
        col2,
        col3,
        Period
FROM    tblMonthlyCost
WHERE   Period IN ( '0112', '0212', '0312', '0412', '0512', '0612' )
        AND DATEPART(MONTH, GETDATE()) = 8
        AND DATEDIFF(DAY, '07/31/2012', GETDATE()) <= 3
        OR Period IN ( '0112', '0212', '0312', '0412', '0512', '0612', '0712' )
        AND DATEPART(MONTH, GETDATE()) = 8
        AND DATEDIFF(DAY, '07/31/2012', GETDATE()) > 3
于 2012-08-06T17:25:59.080 回答