【问题标题】:SQL CASE WHEN ...ANDSQL 案例当 ...AND
【发布时间】:2014-08-06 21:30:44
【问题描述】:
有没有办法像这样编写 SQL 查询:
CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3
THEN @AdjStartYear = '2012/07/01' AND @AdjEndYear = '2012/12/31'
基本上,我希望在评估 CASE 语句后发生两件事。
谢谢
【问题讨论】:
标签:
sql
sql-server-2008
tsql
case
【解决方案1】:
不,你必须做两个案例陈述
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
【解决方案2】:
你可以不用CASE 声明来做到这一点:
SELECT @AdjStartYear = '2012/07/01', @AdjEndYear = '2012/12/31'
WHERE DATEPART(year, @year_end) = 2013 AND DATEPART(month, @year_end) = 3
这仅在满足WHERE 条件时执行操作。 sqlFiddle