如何在ORACLE中使用LISTTAG形成递增数字的单行数据
How to form single row data with incremented numbers using LISTTAG in ORACLE
列
美国广播公司
防御
GHI
预期结果在单行中,项目符号编号作为分隔符:
- ABC 2.DEF 3.GHI
无法在listagg
内全部完成,但可以生成序号:
select your_column, row_number() over (order by your_column) as rn
from your_table
然后将其用作内联视图,并将 listagg
:
中的值连接在一起
select listagg(rn || '. ' || your_column, ' ') within group (order by rn) as result
from (
select your_column, row_number() over (order by your_column) as rn
from your_table
)
RESULT
--------------------
1. ABC 2. DEF 3. GHI
我假设您希望它们按字母顺序排列;如果不是,您可以调整 row_number()
调用。
I tried to use rownum in listtag
那也行,有点像:
select listagg(rownum || '. ' || your_column, ' ') within group (order by rownum) as result
from your_table
...但是您似乎无法控制顺序,除非您仍然使用子查询 - db<>fiddle
列
美国广播公司
防御
GHI
预期结果在单行中,项目符号编号作为分隔符:
- ABC 2.DEF 3.GHI
无法在listagg
内全部完成,但可以生成序号:
select your_column, row_number() over (order by your_column) as rn
from your_table
然后将其用作内联视图,并将 listagg
:
select listagg(rn || '. ' || your_column, ' ') within group (order by rn) as result
from (
select your_column, row_number() over (order by your_column) as rn
from your_table
)
RESULT
--------------------
1. ABC 2. DEF 3. GHI
我假设您希望它们按字母顺序排列;如果不是,您可以调整 row_number()
调用。
I tried to use rownum in listtag
那也行,有点像:
select listagg(rownum || '. ' || your_column, ' ') within group (order by rownum) as result
from your_table
...但是您似乎无法控制顺序,除非您仍然使用子查询 - db<>fiddle