SQL解码或CASE或IF

SQL解码或CASE或IF,sql,Sql,我需要根据月份运行查询 比如说 系统日期为2016年4月1日或之后,必须选择2016年3月 elsebefore 2016年3月或2016年3月必须选择2015年3月因为您没有提到您的数据库或表结构,您可以尝试类似的方法,因为日期转换可能无法在某些RDM上使用。使用合适的 select case when sysdate > to_date('01/04/2016','DD/MM/YYYY') then 'March 2016' else 'March 2015'

我需要根据月份运行查询

比如说

系统日期为2016年4月1日或之后,必须选择2016年3月
elsebefore 2016年3月或2016年3月必须选择2015年3月

因为您没有提到您的数据库或表结构,您可以尝试类似的方法,因为日期转换可能无法在某些RDM上使用。使用合适的

select 
  case when sysdate > to_date('01/04/2016','DD/MM/YYYY') 
   then 'March 2016' 
   else 'March 2015' 
end as MarchYear 
from yourTable

必须根据sysdate进行检查,然后执行查询。或者您是否需要当前查询的调试帮助?如果是这样,发布1您的查询,2您期望它做什么,3它没有做您期望的事情,4示例数据集甚至不是表结构?选择decodeto_charsysdate,'MM',to_charsysdate,'MM'>03,sysdate,null from dual如果日期超过当前年份三月显示sysdate,则显示sysdate,否则显示'01/03/lastyear'