- SQL code
create table gxg (sid int,var varchar(400));insert into gxg select 104,'1a,2a,3a,'union allselect 105,'1b,2b,3b,'union allselect 106,'1c,'union allselect 107,'';--我想要的结果是:104,1a,1104,2a,2104,3a,3105,1b,1105,2b,2105,3b,3106,1c,1107,,1
------解决方案--------------------
- SQL code
SELECT * FROM (SELECT SID, REGEXP_SUBSTR (var, '[^,]+', 1, d.l) var, l FROM gxg g, (SELECT LEVEL l FROM DUAL CONNECT BY LEVEL < 10) d WHERE REGEXP_SUBSTR (var, '[^,]+', 1, d.l) IS NOT NULL UNION ALL SELECT SID, NULL var, 1 l FROM gxg WHERE var IS NULL)ORDER BY SID, l