sql – 将字符串oracle拆分成单个列并插入表中

前端之家收集整理的这篇文章主要介绍了sql – 将字符串oracle拆分成单个列并插入表中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含以下格式的列数据的表(Row#只是为了表示行号).
Row#1 :test.doc#delimiter#1234,test1.doc#delimiter#1235,test2.doc#delimiter#1236<br>
Row#2 :fil1.txt#delimiter#1456,fil1.txt#delimiter#1457

我想使用逗号(,)作为分隔符来分割字符串,在一个列中列出所有字符串并插入到新表中.

输出应该是这样的(行#只是为了表示行号):

Row#1:test.doc#delimiter#1234<br>
Row#2:test1.doc#delimiter#1235<br>
Row#3:test2.doc#delimiter#1236<br>
Row#4: fil1.txt#delimiter#1456

任何人都可以帮我这样做吗?

解决方法

WITH data AS (
  SELECT 'test.doc#delimiter#1234,test2.doc#delimiter#1236' AS "value" FROM DUAL
  UNION ALL
  SELECT 'fil1.txt#delimiter#1456,fil1.txt#delimiter#1457' AS "value" FROM DUAL
)
SELECT  REGEXP_SUBSTR( data."value",'[^,]+',1,levels.COLUMN_VALUE )
FROM    data,TABLE(
          CAST(
            MULTISET(
              SELECT LEVEL
              FROM   DUAL
              CONNECT BY  LEVEL <= LENGTH( regexp_replace( "value",]+'))  + 1
            ) AS sys.OdciNumberList
          )
        ) levels;
原文链接:/mssql/83080.html

猜你在找的MsSQL相关文章