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;