Oracle
 sql >> Database >  >> RDS >> Oracle

ORACLE/SQL:wm_concat e ordina per

Per chiunque stia ancora utilizzando wm_CONCAT (aka versioni precedenti di db):la soluzione è aggiungere una condizione distinta, quindi applicherà anche l'ordine crescente ai valori concatenati.

Non chiedere perché non è documentato, ma funzionerà.

Inoltre, utilizzando un order by in una sottoquery, precedente a wm_concat, l'ordine verrà semplicemente randomizzato, quindi non avrebbe dovuto essere raccomandato.

Esempio per l'SQL richiesto:

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;

Tieni presente che l'opzione distinta non funziona se utilizzata in procedure/pacchetti.