DB2 Distinct + xmlagg查询
|
我想要等同于DB2中MySql的GROUP_CONCAT功能。
我已经尝试过使用DB2的XML Aggrigate功能来整理缪斯。
SELECT a.ID,
substr(xmlserialize(xmlagg(xmltext( concat(\',\', SPECIALISATION)))as varchar( 1024 )),2),
substr(xmlserialize(xmlagg(xmltext(concat(\',,, BASIC_SKILL2)))as varchar( 1024 )),2),
substr(xmlserialize(xmlagg(xmltext(concat(\',\', BASIC_SKILL1)))as varchar( 1024 )),2)
FROM candidate_resume_data a,candidate_skills_info b,skill_special_master c,skill_master_basic2 d,skill_master_basic1 e
WHERE e.SKILL_BASIC1_ID = d.SKILL_BASIC1_ID
AND b.ID = a.ID
AND d.SKILL_BASIC2_ID = c.SKILL_BASIC2_ID
AND b.CANDIDATE_SPECIALISATION_ID = c.SKILL_SPECIAL_ID
GROUP BY a.ID;
这给我结果
ID | SPECIALISATION | BASIC_SKILL2 | BASIC_SKILL1 |
----+---------------------------------------------------------------------+
1 | Java,C++ | Development,Development | Software,Software |
但是我想要BASIC_SKILL2,BASIC_SKILL1的唯一/唯一值。
ID | SPECIALISATION | BASIC_SKILL2 | BASIC_SKILL1 |
----+-------------------+-------------------+------------------+
1 | Java,C++ | Development | Software |
没有找到相关结果
已邀请:
2 个回复
夏瓤跋棘
在您的情况下,改为使用子选择将更加容易和清楚(为清晰起见,省略了XMLELEMENT样板):
也许有一种更简单的方法,但这就是我想出的。 另外,您可能想利用XMLQUERY和XSLTRANSFORM之类的功能。与手动操作相比,它更简单,更不易出错。
峨躬坎抬焚