【问题标题】:How can I get the required output for the given sample data in Oracle? [duplicate]如何在 Oracle 中获得给定样本数据所需的输出? [复制]
【发布时间】:2018-07-01 19:54:39
【问题描述】:

我的样本数据

Table A

col1    col2
------------------------------- 
1       1,2,3
2       1,2,4,5

要求的输出是

col1  col2
-------------------------
1     1
1     2
1     3
2     1
2     2
2     4   
2     5

如何在 oracle 中获得所需的输出?提前致谢

【问题讨论】:

  • 我们可以帮助你,如果你到目前为止做了什么
  • 谢谢安达姆。但是我如何在 Oracle 中做到这一点?
  • 你搜索过别人的帖子吗?如果没有,请先搜索。
  • 谢谢 Kaushik Nayak。
  • 通过“获取所需的输出”,听起来您的意思是“将逗号分隔的字符串解析为多行”。根据 Google 的数据,Googling for that 给了我 224K 的结果,stackoverflow.com/questions/14328621/… 在顶部。

标签: sql oracle plsql


【解决方案1】:

这是一种选择:

SQL> with test (col1, col2) as
  2  (select 1, '1,2,3' from dual union
  3   select 2, '5,6,7,8' from dual
  4  )
  5  select col1, regexp_substr(col2, '[^,]+', 1, column_value) col2
  6  from test,
  7       table(cast(multiset(select level from dual
  8                           connect by level <= regexp_count(col2, ',') + 1)
  9                  as sys.odcinumberlist))
 10  order by col1, 2;

      COL1 COL2
---------- -------
         1 1
         1 2
         1 3
         2 5
         2 6
         2 7
         2 8

7 rows selected.

SQL>

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多