DB2XML在单个语句中选择多行

DB2XML在单个语句中选择多行,db2,db2-400,Db2,Db2 400,在我的代码中 SELECT X.DEP_ID FROM (SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE FROM SYSIBM.SYSDUMMY1) AS A,

在我的代码中

SELECT X.DEP_ID
              FROM (SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE
                    FROM SYSIBM.SYSDUMMY1) AS A,
                   XMLTABLE (
                      '$d/root'
                      PASSING Element_value AS "d"
                      COLUMNS 
                      DEP_ID  VARCHAR (10)  PATH 'DEP_ID'
                                 ) AS X;
如果它的单个值意味着它可以工作,那就意味着在xml中只有一个DEP_ID。 但多次返回意味着它将显示错误

如何在db2中获得上述输出。

错误的行xquery表达式常量。 试试这个:

SELECT X.DEP_ID
FROM 
(
SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE
FROM SYSIBM.SYSDUMMY1
) AS A
, XMLTABLE 
(
'$d/root/DEP_ID' PASSING Element_value AS "d"
COLUMNS 
DEP_ID  VARCHAR (10)  PATH '.'
) AS X;

如果它的多列的意思是“10000000412310000000051456”,我就不明白这个问题。奇怪的文件是什么,部门和员工处于同一级别?这样一个文档的预期表输出是什么?“$d/root/DEP_ID”将Element_值传递为d。在本节中,您只提到了我的场景中的DEP_ID。我有更多的列。例如:“10000000412310000000051456”预期结果是:DEP_ID EMP ID 1000000004 123 1000000005 1456为什么EMP_ID=123与DEP_ID=1000000004在同一行,而不是DEP_ID=1000000005?就因为这个emp_id元素在同一级别跟随dep_id=1000000004?您可以使用以下文档结构将员工绑定到部门,但不是您提到的方式。123 456
SELECT X.DEP_ID
FROM 
(
SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE
FROM SYSIBM.SYSDUMMY1
) AS A
, XMLTABLE 
(
'$d/root/DEP_ID' PASSING Element_value AS "d"
COLUMNS 
DEP_ID  VARCHAR (10)  PATH '.'
) AS X;