+ -
当前位置:首页 → 问答吧 → 请教一个sql 拼接问题,指教下

请教一个sql 拼接问题,指教下

时间:2011-09-09

来源:互联网

例如 1:
  项目编号 字段a 字段b 字段c 
-------------------------------------------- 
记录1 1 abc xyz 1234  
记录2 1 abc xyz 8888  

结果是: 
  项目编号 字段a 字段b 字段c 
-------------------------------------------- 
记录1 1 abc xyz 12348888  


例如 1:

  项目编号 字段a 字段b 字段c 
-------------------------------------------- 
记录1 1 abc xyz 1234  
记录2 1 abc xyz 8888  
记录3 1 abc xyz 883388  


结果是: 
  项目编号 字段a 字段b 字段c 
-------------------------------------------- 
记录1 1 abc xyz 12348888883388  


数据相同有很多,但是 项目编号,字段a ,字段b 一样,需要拼接最后一个




作者: amdgaming   发布时间: 2011-09-09

SQL code

select 项目编号,字段a,字段b,replace(vm_concat(字段c),',') as 字段c
from table
group by 项目编号,字段a,字段b

作者: hanzs   发布时间: 2011-09-09

SQL code
SQL> with t as
  2   (select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 1234 字段3
  3      from dual
  4    union all
  5    select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 8888 字段3
  6      from dual
  7    union all
  8    select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 8833888 字段3
  9      from dual
 10    union all
 11    select 2 项目编号, 'def' 字段1, 'mno' 字段2, 987 字段3
 12      from dual
 13    union all
 14    select 2 项目编号, 'def' 字段1, 'mno' 字段2, 321 字段3 from dual)
 15  select 项目编号, 字段1, 字段2, wm_concat(字段3) 字段3
 16    from t
 17   group by 项目编号, 字段1, 字段2;
 
      项目编号 字段1 字段2 字段3
---------- ----- ----- --------------------------------------------------------------------------------
         1 abc   xyz   1234,8888,8833888
         2 def   mno   987,321
 
SQL>

作者: xl_smlie   发布时间: 2011-09-09

SQL code
SQL> with t as
  2   (select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 1234 字段3
  3      from dual
  4    union all
  5    select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 8888 字段3
  6      from dual
  7    union all
  8    select 1 项目编号, 'abc' 字段1, 'xyz' 字段2, 8833888 字段3
  9      from dual
 10    union all
 11    select 2 项目编号, 'def' 字段1, 'mno' 字段2, 987 字段3
 12      from dual
 13    union all
 14    select 2 项目编号, 'def' 字段1, 'mno' 字段2, 321 字段3 from dual)
 15  select 项目编号, 字段1, 字段2, replace (wm_concat(字段3),',') 字段3
 16    from t
 17   group by 项目编号, 字段1, 字段2;
 
      项目编号 字段1 字段2 字段3
---------- ----- ----- --------------------------------------------------------------------------------
         1 abc   xyz   123488888833888
         2 def   mno   987321
 
SQL> 

作者: xl_smlie   发布时间: 2011-09-09

引用 1 楼 hanzs 的回复:
SQL code


select 项目编号,字段a,字段b,replace(vm_concat(字段c),',') as 字段c
from table
group by 项目编号,字段a,字段b


如果版本支持(9i以上)
用vm_concat
如果不支持
用connect by加上sys_connect_by_path来实现了

作者: inthirties   发布时间: 2011-09-09

引用 4 楼 inthirties 的回复:

引用 1 楼 hanzs 的回复:
SQL code


select 项目编号,字段a,字段b,replace(vm_concat(字段c),',') as 字段c
from table
group by 项目编号,字段a,字段b


如果版本支持(9i以上)
用vm_concat
如果不支持
用connect by加上sys_connect_by_path来实现了


我的不是9i

作者: amdgaming   发布时间: 2011-09-09