SQL分割(合并)保存
假如一个User表 字段
ID name description part 1 张三 描述(部分1) 1 1 张三 描述(部分2) 2 2 李四 描述 1 3 王五 描述 1
ID和part作为联合主键,由于description 字段可能很长,超过了varchar(4000)的范围,所以这种情况会分成多个part存储,如张三,分成了两个部分。
现在需要一条select语句,需要取出后,如果字段是多个part,那么就合并,得到如下结果:
ID name description 1 张三 描述(part1和2合并的完整描述) 2 李四 描述 3 王五 描述
实现SQL
select id, name, ltrim(sys_connect_by_path(description, ','), ',') from (select id, name, description, row_number() over(partition by id order by part) rn, count(*) over(partition by id) cnt from AAA -- 换成你的表名 ) a where level = cnt start with rn = 1 connect by prior id = id and prior rn = rn - 1 select id,name,wm_syswm_concat(description) from table group by id,name select id,name,WMSYS.WM_CONCAT(description) from table group by id,name
Mr-sniper
北京市海淀区
邮箱:rafx_z@hotmail.com
北京市海淀区
邮箱:rafx_z@hotmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步