想做一个视图联合查询达到以下效果,请教如何写SQL

mudonfield 2007-11-13 12:53:28
主表 T1

ID Name
1 AAA
2 BBB
3 CCC

子表 T2
ID Value1,Value2
1 123 456
1 333 666
2 345 999
2 008 444
3 567 4454
3 45 56777
3 555 6789

想做一个视图联合查询达到以下效果,请教如何做
ID Name Value
1 AAA 123-456,333-666
2 BBB 345-999,008-444
3 CCC 567-4454,45-56777,555-6789
...全文
146 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mantisXF 2007-11-13
  • 打赏
  • 举报
回复
try it ...


select distinct
yy.id,
T1.name,
ltrim(first_value(path) over(partition by yy.id order by lev desc)) as values_nums
from (
select zz.*,
sys_connect_by_path(zz.values_num,',') as path,
level lev
from (
select tt.id,
tt.Value1||'-'||tt.Value2 as values_num,
tt.id||(row_number() over(partition by tt.id)-1) front_data,
tt.id||row_number() over(partition by tt.id) behind_data
from T2 tt
)zz
connect by prior zz.front_data = zz.behind_data
)yy,
T1
where yy.id = T1.id;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧