如何使用HiveSQL实现2个字符串间的映射及排序

这里写自定义目录标题

有2个表,1个表user_class存在2个字段:class,codes,另一个表user_info有2个字段:code,name。
期望返回每个class的codes及names,codes按照正序排序,names和codes顺序保持一致?

sql 复制代码
with user_class as (
  select 'A' as class,'2\|1\|3' as codes
  union all 
  select 'B' as class,'2\|1' as codes
),
user_info as (
  select '1' as code,'TOM' as name
  union all
  select '2' as code,'Jim' as name
  union all
  select '3' as code,'An' as name
)
select w.class,regexp_replace(w.code,'[0-9]+_','') code,regexp_replace(w.name,'[0-9]+_','') name from (
select r.class,concat_ws(',',sort_array(collect_list(r.code))) code,concat_ws(',',sort_array(collect_list(r.name))) name
from (
select s.class,concat(lpad(s.rnt,4,'0'),'_',s.code) code,concat(lpad(s.rnt,4,'0'),'_',s.name) name
from (
select t1.class,t1.code,t2.name,row_number() over(partition by t1.class order by t1.code) rnt from (
select
  t.class,s.code
from user_class t 
lateral view posexplode(split(codes,'\\|')) s as pos,code
) t1
left join
(select code,name
from user_info) t2
on t1.code = t2.code
) s
) r group by r.class
) w

实现结果如下:

相关推荐
互联网科技看点16 分钟前
诸葛io获认可:金融分析智能体赛道领航者
大数据·人工智能·金融
2301_800256111 小时前
全球气候与环境变化考试知识点梳理(1)
大数据·人工智能
edisao1 小时前
六、 读者高频疑问解答 & 架构价值延伸
大数据·开发语言·人工智能·科技·架构·php
-大头.1 小时前
GIT教程系列(共3篇)---------第二篇:Git高级协作与团队实战完全指南
大数据·git·elasticsearch
HXDGCL2 小时前
大会观察 | 破除创新链堵点:论“工厂直供”模式如何加速自动化核心部件迭代
大数据·人工智能·自动化·自动化生产线·环形导轨
五度易链-区域产业数字化管理平台2 小时前
五度易链企业数据服务架构思考:从“存数据”到“用数据”的全周期解决方案
大数据·人工智能·架构
OpenCSG3 小时前
提示词工程到AgenticOps:OpenCSG公益课
大数据·人工智能·开源·opencsg
EasyGBS3 小时前
EasyGBS的金融网点全场景智能可视化监管方案设计
大数据·人工智能
拓端研究室3 小时前
2026中国医美护肤产品行业发展与未来趋势蓝皮书:射频、胶原蛋白、PDRN与肉毒素|附90+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
Gofarlic_oms14 小时前
跨国企业Cadence许可证全球统一管理方案
java·大数据·网络·人工智能·汽车