多行合并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,如需转载请自行联系原作者


相关文章
|
Linux Python
百度搜索:蓝易云【Centos 7系统安装python 3.9.10详细教程。】
现在,你已经成功在CentOS 7系统上安装了Python 3.9.10。你可以使用 `python3.9`命令来运行Python 3.9.10版本的解释器。请根据实际需要进行配置和使用。
528 0
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
160 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
存储 监控 NoSQL
MongoDB如何防止数据丢失?
【6月更文挑战第7天】MongoDB如何防止数据丢失?
330 1
|
API PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(九)(3)
PyTorch 2.2 中文官方教程(九)
551 0
PyTorch 2.2 中文官方教程(九)(3)
|
PHP C语言
给自己1分钟时间,学会php
给自己1分钟时间,学会php
给自己1分钟时间,学会php
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
472 0
|
机器学习/深度学习
YOLOv8改进 | Conv篇 | 结合Dual思想利用HetConv创新一种全新轻量化结构CSPHet(参数量下降70W)
YOLOv8改进 | Conv篇 | 结合Dual思想利用HetConv创新一种全新轻量化结构CSPHet(参数量下降70W)
364 0
|
Linux C语言
嵌入式软件调试中的打印开关及打印等级
嵌入式软件调试中的打印开关及打印等级
|
JavaScript 前端开发
JavaScript 点击事件:一个按钮触发另一个按钮
给按钮 2 添加点击事件 click 触发按钮 1 的点击事件,就算给按钮 1 添加样式 display: none; 或 visibility: hidden; 隐藏起来也能触发。
843 0