Je hebt geen DISTINCT
. nodig om uw resultaat te krijgen; bovendien, om het resultaat in een bepaalde volgorde te krijgen, is alles wat je nodig hebt een ORDER BY
clausule:
select trim(regexp_substr('bbb;aaa;qqq;ccc','[^;]+', 1,level) ) as q
from dual
connect by regexp_substr('bbb;aaa;qqq;ccc', '[^;]+', 1, level) is not null
order by level