Even as of SAP IQ 16.1.4, my tests show that if a query has multiple list() expressions, one "order by" governs all the rest.
However, there is a workaround: one list per subquery, join the subqueries back together
-- work around - contrived example but shows that you can calculate lists in separate sub-query and join them together
select *
from ( select
creator
, list (table_name, ',' order by table_name) TableNameSort
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator
) vw_sort1
cross join (
select creator
, list (table_name, ',' order by object_id) ObjectIDSort
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator
) vw_sort2
The following clearly shows the order by is not respected on second list
-- Example of single List sorting correctly by TableName
select
creator
, list (table_name, ',' order by table_name) TableNameSort
, 'Correct TableName Sort' as TestResult
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator
-- return both lists, but sort is identical, the second List sort is applied to both
select creator
, list (table_name, ',' order by table_name) TableNameSort
, list (table_name, ',' order by object_id) ObjectIDSort
, 'Both Sorted by ObjectID' as TestResult
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator
-- return both lists, but sort is identical, the second List sort is applied to both
select creator
, list (table_name, ',' order by object_id) ObjectIDSort
, list (table_name, ',' order by table_name) TableNameSort
, 'Both Sorted by TableName' as TestResult
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator
-- Example of single List sorting correctly by ObjectID
select creator
, list (table_name, ',' order by object_id) ObjectIDSort
, 'Correct ObjectID Sort' as TestResult
from sys.sysTab -- describe sys.sysTab
where sys.sysTab.table_name like 'sys%'
group by creator