2014-06-17 9 views
1

Есть ли способ, чтобы написать SQL запрос следующим образом:SQL СЛУЧАЙ, КОГДА ... И

CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3   
     THEN @AdjStartYear = '2012/07/01' AND @AdjEndYear = '2012/12/31' 

В принципе, я хочу 2 вещи, чтобы это произошло после того, как оператор СЛУЧАЙ оценивается.

Благодаря

ответ

3

Нет, вы должны сделать 2 тематические заявления

select @AdjStartYear = CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3 
          THEN '2012/07/01' 
         END, 
     @AdjEndYear = CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3 
          THEN '2012/12/31' 
        END 
1

Вы могли бы сделать это без CASE заявления:

SELECT @AdjStartYear = '2012/07/01', @AdjEndYear = '2012/12/31' 
WHERE DATEPART(year, @year_end) = 2013 AND DATEPART(month, @year_end) = 3 

Это только выполняет операцию, если WHERE критериев выполняется. sqlFiddle

Смежные вопросы