您好,登錄后才能下訂單哦!
Oracle with 語句可以實現如同connect by 語句一樣的序列:
使用rownum實現1到10的序列。
select rownum from dual connect by rownum<=10;
使用level實現1到10的序列。
select level from dual connect by level<=10;
with c(n) as (select 1 from dual union all select n+1 from c where n<10) select n from c;
更多connect by 用法參考:https://blog.csdn.net/wang_yunj/article/details/51040029/
查詢當前時間往前的12周的開始時間、結束時間、第多少周:
select sysdate - (to_number(to_char(sysdate - 1, 'd')) - 1) - (rownum - 1) * 7 as startDate, sysdate + (7 - to_number(to_char(sysdate - 1, 'd'))) - (rownum - 1) * 7 as endDate, to_number(to_char(sysdate, 'iw')) - rownum + 1 as weekIndex from dualconnect by level<= 12;--將level改成rownum可以實現同樣的效果
d 表示一星期中的第幾天
iw 表示一年中的第幾周
字符串分割,由一行變為多行:
比如說分割01|02|03|04這種有規律的字符串
select REGEXP_SUBSTR('01|02|03|04', '[^|]+', 1, rownum) as newport from dual connect by rownum <= REGEXP_COUNT('01|02|03|04', '[^|]+');
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。