无法弄清楚如何将每个课程标题分成单独的专栏而不是将它们连成一列?
--create
CREATE TABLE DEPARTMENTS_LIST(DL_ID NUMBER, D_L_XML XMLTYPE);
--insert
INSERT INTO DEPARTMENTS_LIST VALUES
(1,XMLTYPE('
<ROW>
<DEPARTMENT ID="1000">
<NAME>Science</NAME>
<COLLEGE>DIT</COLLEGE>
<COURSES>
<COURSE NO="2000">
<TITLE>Computing</TITLE>
<HOURS>20</HOURS>
</COURSE>
<COURSE NO="2001">
<TITLE>Computer Science</TITLE>
<HOURS>25</HOURS>
</COURSE>
<COURSE NO="2002">
<TITLE>Networking</TITLE>
<HOURS>30</HOURS>
</COURSE>
</COURSES>
</DEPARTMENT>
</ROW>
'));
--query
Select Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/NAME/text()').Getstringval() "DEPARTMENT NAME",
Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/COURSES/COURSE/TITLE/text()').Getstringval() "COURSE TITLE"
From Departments_List Dl;
输出如下:
答案 0 :(得分:0)
不理想,但这给了我一些接近我正在寻找的东西:
Select Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/NAME/text()').Getstringval() "DEPARTMENT NAME",
Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/COURSES/COURSE[1]/TITLE/text()').Getstringval() "COURSE TITLE"
From Departments_List Dl
UNION
Select Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/NAME/text()').Getstringval() "DEPARTMENT NAME",
Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/COURSES/COURSE[2]/TITLE/text()').Getstringval() "COURSE TITLE"
From Departments_List Dl
UNION
Select Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/NAME/text()').Getstringval() "DEPARTMENT NAME",
Dl.D_L_Xml.Extract('/ROW/DEPARTMENT/COURSES/COURSE[3]/TITLE/text()').Getstringval() "COURSE TITLE"
From Departments_List Dl;
输出: