如何某一字段的内容用一条SQL语句拼接起来?

我有一张表table1,结构如下:
column1 column2
a a1
a a2
a a3
b b1
b b2
我想通过一条SQL语句实现下列结果:
col1 col2 col3
a a1,a2,a3 3
b b1,b2 2
我用Select column1 col1,count(*) col3 from table1 group by column1已经选出了两列col1和col3,可是不知怎么把col2选出来?

请问高手,如何将字段column2中的值拼接起来?

很久以前我回答过这样的问题。字符串不可能和数字一样处理,因为数字统计(无论是count还是sum或者avg)都是不需要考虑排序的,而字符串就完全不一样,所以数据库不可能提供类似的操作。

这个问题的解决方法可以用一个function来处理:
create or replace function get_conc_col2(p_col1 varchar2) return varchar2
as
  w_ret varchar2(1000);
begin
  for i in (select col2 from table1 where col1=p_col1) loop
    w_ret := w_ret||','||i.col2;
  end loop;
  return w_ret;
end get_conc_col2;
/

select col1,get_conc_col2(col1) col2,cnt from
(select col1,count(*) cnt from table1 group by col1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值