回答

收藏

将逗号分隔的值拆分为Oracle中的列

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

我返回的值包含255个逗号分隔的值。有没有一种简单的方法可以将其拆分为不具有255 substr的列?
& e* R5 u# n- \# tROW  | VAL
3 S" \$ Y! [5 ?8 y7 ~* q9 Q1 K-----------
) I) |+ ]6 x- ]& V1    | 1.25, 3.87, 2, ...
" w$ K" D) u  s$ C! H; Z! s0 j& X2    | 5, 4, 3.3, ....
) y( ?) V: @2 t: [! d( D: h9 ^) K* j/ M) [/ I7 m
ROW | VAL | VAL | VAL ...+ }2 P3 z* u7 N8 B" p
--------------------- ! r/ N# c  d+ F1 t7 _% K
1   |1.25 |3.87 | 2 ...     
5 V0 U( Y& @+ {: J; R8 x+ I) ?+ y% H2 X2   | 5   | 4   | 3.3 .../ B4 k4 J- l' z7 p1 z1 X/ I) k
               
- [$ ?2 N- m6 S! i- f: x0 G解决方案:/ b4 _1 B4 ~1 J" l  q' M% x
               
: T  M6 y; H" O) Z9 N: J0 J3 k+ f! l# m1 x0 b  s
% }1 w& H- |2 o
                您可以使用regexp_substr():6 d( p, m  j/ L; ~% `( X# j
select regexp_substr(val, '[^,]+', 1, 1) as val1,
2 o9 A) x% l& C2 r       regexp_substr(val, '[^,]+', 1, 2) as val2,
- D# I: m( j5 C+ L0 u  s' A       regexp_substr(val, '[^,]+', 1, 3) as val3, 2 s8 ^0 @4 V" Q1 M1 P; B
       . . .
* R5 `1 s% V: {; E; Q7 q2 g9 Q我建议您在Excel(或其他电子表格)中生成255个数字的列,并使用电子表格生成SQL代码。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则