[英]How to order a comma-separated list
在 Oracle 中,我想重写一列数据,如下所示:
2012AName,2019BName,2017DName,2017CName
这是一个按年份 + 名称顺序按年份 desc 和名称的第一个字符 asc 拆分后的分组 ',' 结果如下
2012AName,2017CName,2017CDName,2019BName
这是否符合您的要求,
首先,我们使用listagg
和您想要的order by
拆分给定的字符串和聚合。
with input(str)
as
(
select'2012AName,2019BName,2017DName,2017CName' as str
from dual
)
select listagg(split,',')
within group (order by substr(split,1,4),substr(split,5,1))
from
(
select regexp_substr(str,'[^,]+', 1, level) split
from input
connect by regexp_substr(str, '[^,]+', 1, level)
is not null
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.