需要知道Oracle sql中的输出
Country Code
USA 23, 24, 25, 30
Canada 40, 50, 70
这样显示的输出
Country Code
USA 23
USA 24
USA 25
USA 30
Canada 40
Canada 50
Canada 70
答案 0 :(得分:1)
您可以尝试将connect by
与instr
一起使用,以获取,
组号,然后使用regexp_substr
获取字符串。
Oracle 11g R2架构设置:
CREATE TABLE T(
Country varchar(50),
Code varchar(50)
);
INSERT INTO T VALUES ('USA','23, 24, 25, 30');
INSERT INTO T VALUES ('Canada','40, 50, 70');
查询1 :
select distinct Country,trim(regexp_substr(Code, '[^,]+', 1, level)) Code
FROM T
connect by instr(Code, ',', 1, level - 1) > 0
ORDER BY Country desc
Results :
| COUNTRY | CODE |
|---------|------|
| USA | 23 |
| USA | 24 |
| USA | 25 |
| USA | 30 |
| Canada | 40 |
| Canada | 50 |
| Canada | 70 |