天天看點

Oralce 的sql問題

 擷取兩個日期間的工作日,

SQL> select dt_time

  2    from (select to_date('01-12-2010 08:20:56','dd-mm-yyyy HH:MI:SS') + level - 1  dt_time

  3            from dual

  4         connect by level <= sysdate - to_date('01-12-2010 08:20:56','dd-mm-yyyy HH:MI:SS')  + 1

  5         )

  6   where to_char(dt_time,'d') not in ('1','7');

Oracle提供的層次查詢(Hierarchical Queries)功能中的connect by子句可以協助我們便捷的達到目标。

1.建立測試表T

sec@ora10g> create table t (x int);

Table created.

2.使用“connect by level”完成插入1到10連續數字

sec@ora10g> insert into t select rownum from dual connect by level<=10;

10 rows created.

未來星開發團隊--狒狒

QQ:9715234