我认为要使您的查询正常工作,您需要添加一个
group by,然后更改
order by。您还应该使用适当的显式连接语法:
SELECt r.rule_id as RULE_ID, LISTAGG(a.ATTRIBUTE_ID, ', ') WITHIN GROUP (ORDER BY a.ATTRIBUTE_ID) as "ATTR_IDS"FROM N_RULE r JOIN N_ATTRIBUTE a ON r.RULE_ID = a.RULE_ID GROUP BY r.rule_idORDER BY r.rule_id;
或者,可能要在结果中包括其他属性:
SELECt r.rule_id, r.AUDIENCE, UPPER(r.NAME) LISTAGG(a.ATTRIBUTE_ID, ', ') WITHIN GROUP (ORDER BY a.ATTRIBUTE_ID) as "ATTR_IDS"FROM N_RULE r JOIN N_ATTRIBUTE a ON r.RULE_ID = a.RULE_ID GROUP BY r.rule_id, r.AUDIENCE, UPPER(r.NAME)ORDER BY r.AUDIENCE, UPPER(r.NAME);



