【发布时间】:2014-07-02 05:20:54
【问题描述】:
我有一张如下表:
-------------
ID | NAME
-------------
1001 | A,B,C
1002 | D,E,F
1003 | C,E,G
-------------
我希望这些值显示为:
-------------
ID | NAME
-------------
1001 | A
1001 | B
1001 | C
1002 | D
1002 | E
1002 | F
1003 | C
1003 | E
1003 | G
-------------
我试过了:
select split('A,B,C,D,E,F', ',') from dual; -- WILL RETURN COLLECTION
select column_value
from table (select split('A,B,C,D,E,F', ',') from dual); -- RETURN COLUMN_VALUE
【问题讨论】:
-
这行得通吗?
SELECT COLUMN_VALUE FROM TABLE(split('A,B,C,D,E,F', ','))顺便问一下你用的是什么Oracle版本? -
如您所见,我已经尝试过这样做。我也想要'name'列的相应值。
-
哦,我的意思是,我也想要'ID'列的对应值。
-
什么是拆分?这是你应该写的函数吗?
-
@vipin.huddar 真的吗? Oracle 11gR2 告诉我“没有这样的功能”。您在 Oracle 文档中的什么地方找到了这个?