產生 1 到 10 的假資料
SELECT ROWNUM
FROM DUAL
CONNECT BY ROWNUM <= 10;
或者
SELECT ROWNUM
FROM DUAL
CONNECT BY LEVEL <= 10;
CONNECT BY LEVEL 是產生階層的資料,以字面上來看 CONNECT BY ROWNUM 產生連續數字的含意比較直覺。
透過 TO_DATE( 123, 'DDD') 可以知道當前這一年的第123天的日期是什麼,
假設要產生2016年,一年份的資料,可以這樣寫
SELECT TO_DATE ('2016' || LPAD (ROWNUM, 3, '0'), 'YYYYDDD') FAKE_DATE
FROM DUAL
CONNECT BY ROWNUM <= (SELECT DATE '2016-12-31' - DATE '2016-01-01' + 1
FROM DUAL)
DATE '2016-12-31' - DATE '2016-01-01' 是日期相減,會得到差異的天數,額外+1是相減少1 ( 例如 3/2 - 3/1 只會回傳 1,實際是2天),
在透過 TO_DATE 的 YYYY 指定年份,搭配從1產生連續數字的 ROWNUM,2016年的日期資料就全部產生。