回答

收藏

从两个日期列生成日期范围

技术问答 技术问答 63 人阅读 | 0 人回复 | 2023-09-13

源表如下:7 P3 V6 H% X; x1 G
Id   start_date   end_date    field1
1 k! i- D- B+ r5 B' L- E1    01/03/2019   07/03/2019  text1( N: f. A: _# Y& ]# x" ?* X+ r
2    10/04/2019   15/04/2019  text29 {& A* g2 u0 P# a4 r* S- r
我想得到以下输出:; @/ A" P/ B; p5 _: J% \  R
Id date        field14 _8 l  D! O2 a5 k& ~; h- j* d
1  01/03/2019  text1' A: z5 F% k0 G/ u3 x  m
1  02/03/2019  text1
/ N2 B* D% t# q7 t: ^1  03/03/2019  text1
5 k2 e+ W: c. {- w0 ?1  04/03/2019  text1) g; M; |0 Z: ?3 d- _+ T6 g
1  05/03/2019  text13 ^6 a* w+ e1 z9 Y$ p# h9 U
1  06/03/2019  text1
; V0 m$ M) @* }7 C; P1  07/04/2019  text1
5 E8 w7 l1 m' v) A6 n1 {! {# t2  10/04/2019  text2  U  C7 T5 ]0 m9 z1 N* `9 a
2  11/04/2019  text2' k; N! N' H" |4 Z' u1 j
2  12/04/2019  text2' Q. d1 ?0 n- Z/ c* D, {
2  13/04/2019  text2, G% `) a6 V! @+ X5 Z
2  14/04/2019  text2" E9 w- M8 w# y  g8 H3 J3 h1 V6 b) T
2  15/04/2019  text28 f" l, f8 z* v) E* w* c, Z
我必须使用循环来填充此表吗?
( t+ t  p& b& ], M1 M6 S  o谢谢
  @; d. P, o4 e5 |8 I                # q- W- A) ^2 r) |  y- X! X* `% i
解决方案:% d+ |0 P. c: {+ c5 ~0 f
                / `) F2 V  d8 Q7 |9 W( s6 `5 r

  M- u* J2 M2 l6 T2 F- t# l
2 q4 C, Z) j& v3 F2 n                您可以使用技巧来connect by查询prior +
0 x/ F& _1 W7 c( U' s9 Q1 xsys_guid()
  j; c) W6 S1 t/ ?8 w+ j( [) i) nselect id,start_date + level - 1 as "date", field1 from t 1 ?7 G* @$ G5 x+ [7 s$ b
connect by level 演示
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则