我有一个表,其中包含以下行
ASETTYPEID ASETTYPE
1 SYSTEM
2 PRINTER
3 PROJECTOR
4 SCANNER
5 AUDIO VISUAL AIDS
6 TAB
7 LAPTOPS
8 ALL IN ONE PC
9 OTHERS
我需要选择查询并在新表中插入逗号分隔的值,其结果如下格式
ASETTYPEID ASETTYPE
1,2,3,4,5,7,8,9 SYSTEM,PRINTER,PROJECTOR,SCANNER,AUDIO VISUAL
AIDS,TAB,LAPTOPS,ALL IN ONE PC,OTHERS
1,3,5,8 SYSTEM,PRINTER,PROJECTOR
答案 0 :(得分:0)
使用listagg:
with tbl as
(SELECT 1 ASETTYPEID, 'SYSTEM' ASETTYPE from dual
UNION ALL
select 2, 'PRINTER' from dual
union all
select 3, 'PROJECTOR' from dual
union all
select 4, 'SCANNER' from dual
union all
select 5, 'AUDIO VISUAL AIDS' from dual
union all
select 6, 'TAB' from dual
union all
select 7, 'LAPTOPS' from dual
union all
select 8, 'ALL IN ONE PC' from dual
union all
select 9, 'OTHERS' from dual)
SELECT listagg(ASETTYPEID, ', ')
WITHIN GROUP(order by ASETTYPEID) as ASETTYPEID_list,
listagg(ASETTYPE, ', ')
WITHIN GROUP(order by ASETTYPEID) as ASETTYPE_list
FROM tbl
where ASETTYPEID in (1,2,3,4,5)
输出:
1, 2, 3, 4, 5 SYSTEM, PRINTER, PROJECTOR, SCANNER, AUDIO VISUAL AIDS