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
结果如下: