原始数据:
行转列可以不懂可以参考我的博客:https://blog.csdn.net/qq_27600723/article/details/80687764
SELECT bz.bzmc,bz.jdgs,listagg(to_char(bz.lx),',') within group (order by to_char(bz.lx)) lx
FROM GZWZ_BZMCZJDGS bz group by bz.bzmc,bz.jdgs
-- 注意:
-- length(lx):求lx字符串长度
-- instr(lx,','): 求逗号第一次出现的下标
-- substr(lx,instr(lx,',',-1,1)+1,length(lx)):获取最后一个拼接数据
-- sql 字段数据拆分,获取最后一个拼接数据
select bzmc,jdgs,substr(lx,instr(lx,',',-1,1)+1,length(lx)) lx from (SELECT bz.bzmc,bz.jdgs,listagg(to_char(bz.lx),',') within group (order by to_char(bz.lx)) lx
FROM GZWZ_BZMCZJDGS bz group by bz.bzmc,bz.jdgs);
-- 注意:
-- REGEXP_SUBSTR(lx,'[^,]+',1,1,'i') : 使用正则匹配第一个逗号,"i"表示忽略大小写
-- sql 字段数据拆分,获取第一个拼接数据
SELECT REGEXP_SUBSTR(lx,'[^,]+',1,1,'i') AS STR FROM (SELECT bz.bzmc,bz.jdgs,listagg(to_char(bz.lx),',') within group (order by to_char(bz.lx)) lx
FROM GZWZ_BZMCZJDGS bz group by bz.bzmc,bz.jdgs);