oracle 学习

来源:互联网 发布:java运行时异常 编辑:程序博客网 时间:2024/06/15 23:51
--递归算法 
SELECT cat_name 
  FROM t_tag_cat
 START WITH cat_id = '20' --查询条件

CONNECT BY PRIOR sup_cat_id = cat_id  (可以查询出cat_id在树中路径)


--查询出20160911这天整点所有数据,不管有没有数据都显示

--(tt.mostlist:日期列,EQUIP:对应值 ,INDEX_VALUE :表里面对应的值列名,a_index_cons_value :表名,INDEX_DATE :表里面对应的日期列名)

 select tt.mostlist,   
 (select INDEX_VALUE 
 from a_index_cons_value where substr(index_date,0,8) = '20160911'
 AND INDEX_DATE = tt.mostlist)  EQUIP
 from ( select to_char(TO_DATE(TO_CHAR(to_date('20160911','yyyy-mm-dd hh24'), 'yyyymmddhh24'),
                       'yyyymmddhh24mi')+(1/24)*a,  'yyyymmddhh24')     as mostlist   
 from (select rownum-1 a from dual connect by rownum<=24)) TT    

注:1、select to_char(TO_DATE(TO_CHAR(to_date('20160911','yyyy-mm-dd hh24'), 'yyyymmddhh24'),
                       'yyyymmddhh24mi')+(1/24)*a,  'yyyymmddhh24')     from (select rownum-1 a from dual connect by rownum<=24)可查询出20160911这天00-23小时日期列

        2、 SELECT TO_CHAR(ADD_MONTHS(TO_DATE(TO_CHAR(TO_DATE('201601', 'YYYYMM')-1,'yyyyMM'),'yyyyMM'), ROWNUM),'yyyyMM') AS MONTHLIST
FROM DUAL CONNECT BY ROWNUM <= 12   可查询2016年01-12月列