我有一个表的格式如:
ID NAME
-----------------
1 中国;美国;日本
2 广东;广西如何得到
ID NAME
-----------------
1 中国
1 美国
1 日本
2 广东
2 广西
ID NAME
-----------------
1 中国;美国;日本
2 广东;广西如何得到
ID NAME
-----------------
1 中国
1 美国
1 日本
2 广东
2 广西
用存储过程吧
不过你的表设计本身就有问题。
(
SELECT 1 AS ID, '中国;美国;日本' AS NAME FROM DUAL
UNION
SELECT 2 AS ID, '广东;广西' AS NAME FROM DUAL
)
SELECT DISTINCT ID,
SUBSTR(NAME, INSTR(';' || NAME, ';', 1, LEVEL), 2) AS NAME
FROM A
CONNECT BY LEVEL <= (LENGTH(NAME) - LENGTH(REPLACE(NAME, ';','')))+1
ORDER BY ID;
数据量大建议用其它方法处理
我碰到这样情况会再来张表
id phone对应的