如何解决连接特定字段的列值,同时显示 Oracle 11.2
我是 SQL 菜鸟。
如何在显示其他列值的同时连接特定字段的列值?
我会尽力展示一个简化的例子。
假设我有下表:
表A
姓名 | 地址 | 电子邮件 | 值1 | Value2 | Value3 |
---|---|---|---|---|---|
山姆 | 123 大街 | sam@coporate.com | 34 | 51 | 39 |
彼得 | 789 大街 | peter@coporate.com | 73 | 05 | 59 |
山姆 | 123 大街 | sam@coporate.com | 43 | 12 | 84 |
莎莉 | 456 State Street | sally@coporate.com | 35 | 76 | 23 |
莎莉 | 456 State Street | sally@coporate.com | 77 | 34 | 18 |
彼得 | 789 大街 | peter@coporate.com | 32 | 14 | 54 |
莎莉 | 456 State Street | sally@coporate.com | 64 | 49 | 23 |
预期输出
姓名 | 地址 | 电子邮件 | 值1 | Value2 | Value3 |
---|---|---|---|---|---|
山姆 | 123 大街 | sam@coporate.com | 34,43 | 51,12 | 39,84 |
莎莉 | 456 State Street | sally@coporate.com | 35,64,77 | 76,49,34 | 23,23,18 |
彼得 | 789 大街 | peter@coporate.com | 32,73 | 14,05 | 54,59 |
我尝试使用 LISTAGG
,但我遇到的问题是我无法显示姓名、地址和电子邮件字段。请提前帮助并感谢您!
解决方法
试试:
SELECT NAME,ADDRESS,EMAIL,LISTAGG(value1,',') WITHIN GROUP (ORDER BY value1) new_value_1,LISTAGG(value2,') WITHIN GROUP (ORDER BY value2) new_value_2,LISTAGG(value3,') WITHIN GROUP (ORDER BY value3) new_value_3
FROM TABLE_A
GROUP BY NAME,EMAIL;
我将编译器安装到工作计算机中,我不确定。如果我错了,请告诉我放弃回答。
,这应该可以满足您的要求:
select name,address,email,listagg (value1,') within group (order by name) as values1,listagg (value2,') within group (order by name) as values2,listagg (value3,') within group (order by name) as values3
from a
group by name,email;
Here 是一个 dbfiddle。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。