SQL查询中的case语句不起作用 [英] Case statement in SQL query not working

查看:371
本文介绍了SQL查询中的case语句不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆