[英]Oracle invalid identifier in subquery
我有这个查询:
SELECT
XMLELEMENT("row", XMLATTRIBUTES(productMain.variant as "order"),
(SELECT XMLELEMENT("attribute", XMLATTRIBUTES(product.id as "id") )
FROM product where product.variant = productMain.variant
)
)
FROM
(SELECT
DISTINCT product.variant
FROM
product
WHERE
product.fk_parent = 12345) productMain
而且我收到一个错误“无效标识符productMain.variant
” 。
预期结果:
<row order="1">
<attribute name="Example1"/>
<attribute name="Example2"/>
...
</row>
<row order="2">
...
</row>
餐桌product
:
id | variant | name
_________________________
1 | 1 | Example1
2 | 1 | Example2
3 | 2 | Example3
4 | 3 | Example4
5 | 3 | Example5
...
SQLFIDDLE: http ://www.sqlfiddle.com/#!4 / e91a6 /2
我发现,Oracle没有将嵌套在一个以上层次的子查询关联起来。
我如何仍然得到想要的结果?
SELECT
XMLELEMENT("row", XMLATTRIBUTES(productMain.variant as "order"),
(SELECT XMLELEMENT("attribute", XMLATTRIBUTES(product.id as "id") )
FROM product,
(SELECT DISTINCT variant FROM
product
WHERE fk_parent = 12345) as productMain
where product.variant = productMain.variant
)
)
FROM
(SELECT
DISTINCT variant
FROM
product
WHERE
fk_parent = 12345) productMain
解:
SELECT
XMLELEMENT("row", XMLATTRIBUTES(productMain.variant as "order"),
(
SELECT
XMLAGG(XMLELEMENT("attribute",XMLATTRIBUTES(product.name as "name"),product.variant)) FROM product
where product.fk_parent = 12345
and product.variant = productmain.variant
)
).getClobVal()
FROM
(SELECT
DISTINCT product.variant
FROM
product
WHERE
product.fk_parent = 12345) productMain;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.