您的位置:首页 > 数据库 > Oracle

oracle小技巧之无中生有多行,使用ntile(n)取当前日期所属的季度

2012-04-10 10:43 260 查看
我们都知道在oracle取当前日期所属季度时,我们通常的做法是简单的使用to_char(sysdate,'q'),即可以得到当前日期所属的季度,,忽然想到通示使用ntile(n)应该也可以实现,动手实践一下,效果还不错! 那么如何通过ntile(n)这个函数来取得当前日期所属的季度呢?

(1) 首先我们需要无中生有的生成12条记录,每条记录查询结果为月份的值;

(2) 使用ntile(4)将结果集分成4个片断;

(3) 那么当前日期落在第几个片断里,即是经几季度

整体的取季度的sql如下:

select quarter from (select ntile(4) over(order by rownum) quarter ,to_number(to_char(to_date('2011-01-01','yyyy-mm-dd'), 'MM')) m,rownum rn

from dual

connect by level <= 12) cc

where cc.m = rn;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: