0

行を複数の行に分割する必要があります。

列のサンプル値はこのようなものです。

Message for status: warnings: [w1,w2] | errors: [e1,e2] | other_errors: [e3]

上記の合計メッセージは 1 つの列の値です。次のように複数の行に分割する必要があります

w1
w2
e1
e2
e3
  • これを行う方法を教えてもらえますか?
4

1 に答える 1

0

列に分割する方法の 1 つを次に示します。

select
  ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,1) ,',') s1,
  ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,2) ,',') s2,
  ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,4) ,',') s3,
  ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,5) ,',') s4,
  ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,7) ,',') s5
from
  t1;

次に、それをアンピボットする必要があります。SE には多くの例があります。

于 2013-04-30T20:02:28.193 に答える