多行合并2列并去掉重复列

简介:
-- 多行合并2列并去掉重复列:  

create   table  tb 
(col1 
varchar ( 10 ), 
col2 
varchar ( 10 ), 
col3 
varchar ( 10 ), 
col4 
varchar ( 10 )) 
go  

insert  tb  select   ' 11111 '  ,    ' 222 '  ,       ' A '   ,     1   
insert  tb  select   ' 1111 '  ,    ' 333 '  ,        ' A '  ,      1   
insert  tb  select   ' 2222 '  ,    ' 999 '  ,        ' B '  ,      2   
insert  tb  select   ' 3333 '   ,   ' 111 '  ,        ' B '  ,      2   

go  
create   FUNCTION  dbo.f_str( @col3   varchar ( 10 )) 
RETURNS   varchar ( 8000
AS  
BEGIN  
declare   @str   varchar ( 8000
set   @str = ''  
select    @str = @str +  
case   
when   charindex ( ' , ' + col1 + ' - ' , ' , ' + @str + ' - ' ) = 0    then  col1 + ' - '  
else   ''   
end +  
case   
when   charindex ( ' - ' + col2 + ' , ' , ' - ' + @str + ' , ' ) = 0    then  col2 + ' , '   
else   ''   
end  
from  tb  
where  col3 = @col3  
return   
left ( @str , len ( @str ) - 1
END  
go  
select   distinct  newcol = dbo.f_str(col3),col3,col4   from  tb  

drop   table  tb 
drop   function  f_str 

/*  
newcol                      col3  col4 
-------------------------------------- 
11111-222,1111-333   A       1 
2222-999,3333-111    B        2 

*/ 


    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/01/03/1638173.html,如需转载请自行联系原作者


相关文章
|
6月前
|
小程序
06 - table表格标签+ 行合并+列合并
06 - table表格标签+ 行合并+列合并
129 0
|
SQL 存储 缓存
索引合并,能不用就不要用吧!
索引合并,能不用就不要用吧!
|
存储 关系型数据库 MySQL
mysql字符串等值查询中条件字段值末尾有空格也能查到数据问题
mysql字符串等值查询中条件字段值末尾有空格也能查到数据问题
248 0
|
前端开发
Bootstrap - 列排序,列偏移,列嵌套
Bootstrap - 列排序,列偏移,列嵌套
100 0
DataTable 修改列名 删除列 调整列顺序
DataTable 修改列名 删除列 调整列顺序
213 0
|
关系型数据库 MySQL 索引
B+树索引使用(7)匹配列前缀,匹配值范围(十九)
B+树索引使用(7)匹配列前缀,匹配值范围(十九)
|
存储 API 索引
索引合并那些事情
假期梳理了之前在新浪博客的文档,将一些有用的内容搬到这里。本文分享索引合并的经验。
247 0