sql - 在 Oracle 9i 中拆分逗号分隔值

标签 sql oracle oracle9i

在 Oracle 中,我有名为 orderids 的列

orderids
111,222,333
444,55,66
77,77

如何获得输出为
Orderid
111
222
333
444
55
66
77
77

最佳答案

尝试这个:

 WITH TT AS
 (SELECT orderid COL1 FROM orders)
 SELECT substr(str,
                   instr(str, ',', 1, LEVEL) + 1,
                   instr(str, ',', 1, LEVEL + 1) -
                   instr(str, ',', 1, LEVEL) - 1) COL1
     FROM   (SELECT rownum AS r,
                    ','|| COL1||',' AS STR
               FROM   TT )
     CONNECT BY PRIOR r = r
         AND    instr(str, ',', 1, LEVEL + 1) > 0
         AND    PRIOR dbms_random.STRING('p', 10) IS NOT NULL
;

enter image description here

看到这个 SQLFiddle

关于sql - 在 Oracle 9i 中拆分逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19195751/

相关文章:

sql - 仅更新 Pl/SQL 中日期时间字段的日期

java - 在数据库中插入图像时出错

oracle - 如何从有效包中获取 "ORA-00904: : invalid identifier"?

plsql - Oracle、PL/SQL 中带有 INOUT 参数的过程示例

sqlite 根据列值创建有序分区,即密集等级()

SQL(急速): How to pull locations within X mile radius of lat/lon pont

java - 空数据库列在结果集上变为零

c++ - 在 Pro*C 中使用 LIKE

如果只有所有功能,mysql连接结果

sql - 性能 : View vs. 子选择