【发布时间】:2026-01-07 12:55:02
【问题描述】:
我对 SQL/XML 和 Oracle 有疑问。 我将 Oracle 的示例与 dept 和 emp 一起使用。 一开始的情况: 我想要一个带有部门和员工的 xml:
SELECT Xmlelement("employees", dept.deptno, Xmlagg(
Xmlelement("employee", ename))).
getStringVal()
FROM emp
INNER JOIN dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
现在我想要所有部门,即使没有任何员工(右外部联接)。此外,我想要员工的一些属性:
SELECT XMLELEMENT("employees", dept.deptno,
Xmlagg(
XMLELEMENT("employee",
xmlattributes(empno AS "empno", sal AS "salary"), ename)
)
).getStringVal()
FROM emp
right outer join dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
但是现在没有员工的部门有一个空标签“员工”。我有解决这个问题的办法:
SELECT xmlelement("employees",
xmlattributes(dept.deptno as "Abt"),
xmlagg( xmlforest(ename AS "employee") )
).getstringval()
FROM emp
RIGHT OUTER JOIN dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
现在我没有空标签,但我无法放置我想要的属性。这个问题有解决办法吗?
最好的问候 是的
【问题讨论】:
-
包含一些示例数据、您现在从这些查询中获得的输出以及您实际尝试实现的输出会很有帮助。
-
你使用了正确的数据,我使用了相同的