SQL的:
11:36:56 SCOTT@orcl> SELECT *
11:36:58 2 FROM (SELECT CASE WHEN MOD(LEVEL, 21) = 2 OR MOD(LEVEL,21) = 1 THEN
11:36:58 3 CASE WHEN to_char(DATE '2013-04-01' + LEVEL - 1, 'd') - 1 IN ('1', '2') THEN
11:36:58 4 DATE '2013-04-01' + LEVEL - 1
11:36:58 5 ELSE
11:36:58 6 NULL
11:36:58 7 END
11:36:58 8 ELSE
11:36:58 9 NULL
11:36:58 10 END S
11:36:58 11 FROM dual
11:36:58 12 CONNECT BY LEVEL < DATE '2013-09-01' - DATE '2013-04-01'
11:36:58 13 ) T
11:36:58 14 WHERE T.S IS NOT NULL; S
-------------------
2013-04-01 00:00:00
2013-04-02 00:00:00
2013-04-22 00:00:00
2013-04-23 00:00:00
2013-05-13 00:00:00
2013-05-14 00:00:00
2013-06-03 00:00:00
2013-06-04 00:00:00
2013-06-24 00:00:00
2013-06-25 00:00:00
2013-07-15 00:00:00
2013-07-16 00:00:00
2013-08-05 00:00:00
2013-08-06 00:00:00
2013-08-26 00:00:00
2013-08-27 00:00:00
已选择16行。