Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORACLE/SQL:wm_concat &ordem por


Para qualquer um que ainda esteja usando wm_CONCAT (também conhecido como versões mais antigas do db):A solução é adicionar uma condição distinta, ele também aplicará ordem crescente aos valores concatenados.

Não pergunte por que não está documentado, mas funcionará.

Além disso, usar um order by em uma subconsulta, anterior a wm_concat, apenas randomizará o pedido, portanto, não deveria ter sido recomendado.

Exemplo para o SQL solicitado:
SELECT TASK_CARD, WM_CONCAT(distinct code) as ZONES
FROM ODB.TASK_CARD_CONTROL
WHERE ODB.TASK_CARD_CONTROL.CONTROL_CATEGORY = 'ZONE'
GROUP BY TASK_CARD;

Apenas esteja avisado que a opção distinct não funciona quando usada em procedimentos/pacotes.