客戶需求,獲取某一個時間區間的每天的賬戶餘額,最初的方案是,得到日期區間天數,然後循環,進行查詢數據庫得到每一天的餘額,然而這種方案性能較差,如果時間區間爲30天,或100天,就要建立30次甚至跟多的數據庫連接, 嚴重影響性能。於是通過orcal建立虛擬表的方式,獲取到詳細的區間,具體實現sql是,查詢結果如圖所示。而後根據每日餘額表進行關聯。
select * from (SELECT TO_DATE('2018-01-01', 'yyyy-mm-dd') + ROWNUM - 1 DAY_DATE
FROM DUAL
CONNECT BY ROWNUM <= TO_DATE('2018-01-31', 'yyyy-mm-dd') - TO_DATE('2018-01-01', 'yyyy-mm-dd')+ 1) s