排序oracle表中的多值列

我正在尝试对 oracle 表中的列进行排序。列值为 'M013,M007,M019,YYY,M018,XXX,999'。我试图在将列中的值与已排序数据的另一列进行比较之前对列中的值进行排序。我尝试了多个哈希/MD5 和其他几个选项,但没有帮助。 任何帮助表示赞赏!

magiclvnan 回答:排序oracle表中的多值列

您拥有的是逗号分隔的随机元素字符串。正如您所指出的,listagg 函数可以对结果进行排序。我认为最好的办法是将字符串解析为单个元素,然后让 listagg 用排序的元素重建字符串。 (见fiddle

with test(str) as 
     ( select 'M013,M007,M019,YYY,M018,XXX,999' from dual) 
select listagg(estr,',') within group (order by estr)
   from (select regexp_substr(str,'[^,]+',1,level) estr
           from test connect by regexp_substr(str,level) is not null 
        ) ;
本文链接:https://www.f2er.com/1020450.html

大家都在问