oracle的SQL将一个字段多值,分拆多行记录

先写个例子  

SELECT supdepartment,salordicode FROM  salorder WHERE  sheetcode='27.TY1.15.30.10'   AND   salordicode='CHZC0010000000000000360' 

查询时,结果如下:

 

 SQL将一个字段多值,分拆多行记录:

方法:

SELECT DISTINCT* FROM (
SELECT regexp_substr(q.字段, '[^,]+', 1, Level,'i') order_num, salordicode
FROM (
SELECT 字段,salordicode FROM salorder WHERE sheetcode='27.TY1.15.30.10' AND salordicode='CHZC0010000000000000360'
) q
connect by Level <= LENGTH(q.字段) - LENGTH(REGEXP_REPLACE(q.字段, ',', '')) + 1) ORDER BY order_num

结果如下:

 

posted @ 2021-04-15 17:08  饺子有个排骨梦  阅读(1273)  评论(0)    收藏  举报