表 两列 A,B
A B
1 a
1 b
1 c
2 a
2 e
2 f
要求用一个sql文
检索出1 a,b,c
2 a,e,f
最好用sql文实现多谢
解决方案 »
- sql语句请教
- 按照日期汇总数据,如果这一天没有数据,则统计的结果会漏掉这一天,但是把数据倒入Excel中,引用数据很容易出错。
- 请教个奇怪是SQL问题?
- Oracle 存储过程问题
- 高分征集删除大数据量数据库中的过期数据的方案!
- 我在别的Server上导出的数据在另一台Server上恢复上的问题!帮忙啊!
- str='1,2,3,4,'如何在procedure中分割出来?有没有象splite这样的涵数?
- 安装oracle9i后, 想添加一些没安装的选项,怎么办?
- 在asp.net中,通过oledb连接oracle问题
- 求助!如何设置一个表的行作为另一表的列?
- 关于 数据 求和
- 关于oracle报表效率慢解决方案
select 1 a, 'a' b from dual union all
select 1, 'b' from dual union all
select 1, 'c' from dual union all
select 2, 'a' from dual union all
select 2, 'e' from dual union all
select 2, 'f' from dual )
select a,wm_concat(b) from aa
group by a;
with temp as(
select 1 A, 'a' B from dual union all
select 1 A, 'b' B from dual union all
select 1 A, 'c' B from dual union all
select 2 A, 'a' B from dual union all
select 2 A, 'e' B from dual union all
select 2 A, 'f' B from dual)
SELECT a.A, ltrim(MAX(sys_connect_by_path(B, ',')), ',') B
FROM (SELECT row_number() over(PARTITION BY A ORDER BY B) rn, t.* FROM temp t) a
START WITH rn = 1
CONNECT BY PRIOR rn = rn - 1 AND
a.A = PRIOR a.A
GROUP BY a.A
select A,wm_concat(B) B from t group by A;
但是 这不能解决顺序的问题还是用个数相等 并且 每一个列值都 in 的方式来解决了