SQL查询中的case语句不起作用 [英] Case statement in SQL query not working
问题描述
大家好,
我在sql查询中遇到一个问题,
查询是,
SELECT(例如,当GETDATE()='2016-04-11'那么(选择月(GETDATE()))ELSE 12 END)as AvgSales
当我执行上面的查询时,它总是显示结果12
但我的预期输出是,
如果日期是当前年份,那么结果是MONTH(GETDATE())
如果日期是前一年那么结果是12
所以请帮我解决这个问题。
提前感谢
我尝试了什么:
sql查询中的case语句无效
Hi All,
Am facing one problem in sql query,
the Query is,
SELECT (CASE WHEN GETDATE()='2016-04-11' THEN (SELECT MONTH(GETDATE())) ELSE 12 END) as AvgSales
when i execute the above query it always displaying result 12
But MY expected output is,
if the date is current year then the result is MONTH(GETDATE())
if the date is previous year then the result is 12
So please help me out of this solution.
thanks in advance
What I have tried:
case statement in sql query not working
推荐答案
GETDATE()将返回带有时间戳的当前日期。 CAST GETDATE()在查询中进入DATE。
SELECT(CASE WHEN CAST(GETDATE()AS DATE)='2016-04-11'那么(选择月份) (GETDATE()))ELSE 12 END)as AvgSales
GETDATE() will return current date with timestamp. CAST GETDATE() into DATE in the query.
SELECT (CASE WHEN CAST(GETDATE() AS DATE) ='2016-04-11' THEN (SELECT MONTH(GETDATE())) ELSE 12 END) as AvgSales
这篇关于SQL查询中的case语句不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!