在PostgreSQL数据库中提供此xml数据类型:
<parent>
<boy age="12">Joe</child>
<boy age="13">John</child>
<boy age="12">Jimmy</child>
<girl age="13">John</child>
<girl age="11">Jimmy</child>
</parent>
如何提取所有子元素的唯一属性?
这是我到目前为止所做的:SELECT unnest(xpath('(//boy|girl)/@age', col_name)) from table
;
它返回此:
unnest
12
13
12
13
11
我只想返回11,12,13。因此,我的下一步是尝试DISTINCT。我搜寻了互联网并尝试了一些方法,但是它似乎没有用:
方法1SELECT DISTINCT unnest(xpath('(//boy|girl)/@age', col_name)) from table;
我收到此错误:无法为类型xml确定相等运算符
[方法2-使用子查询-我认为这应该是答案。我运行一个查询,该查询返回所有属性的表。然后,我在该表上运行select select,如下所示:SELECT DISTINCT * from (SELECT unnest(xpath('(//a|b|c)/@z', data)) from test3) as x;
我仍然收到相同的错误,无法识别xml类型的相等运算符
我也尝试过:SELECT DISTINCT x from (SELECT unnest(xpath('(//a|b|c)/@z', data)) from test3) as x;
我无法识别类型为xml的比较函数。
感谢任何帮助!