日期:2014-05-18  浏览次数:20501 次

数据列合并问题,请大家帮帮忙,折腾一天了
表结构和字段如下:
职务 姓名
主任 张三
副主任 李四
副主任 王五
组长 马六
组长 陈七

要求合并这两列为一列,显示如下:

职务姓名

主任:
张三
副主任:
李四
王五
组长:
马六
陈七

请大家帮帮忙,搞了一天了,也没搞定。


------解决方案--------------------
SQL code

create table ly
(职务 varchar(8), 姓名 varchar(8))

insert into ly
select '主任', '张三' union all
select '副主任', '李四' union all
select '副主任', '王五' union all
select '组长', '马六' union all
select '组长', '陈七'


select 职务姓名
from
(select 职务 '职务姓名',t.z,t.rn,
 row_number() over(partition by 职务 order by getdate()) r
from
(select 1 z,row_number() over(order by getdate()) rn, 职务+':' 职务 from ly
union all
select 2 z,row_number() over(order by getdate()) rn, 姓名 from ly) t) y
where y.r=1
order by y.rn,y.z

/*
职务姓名
---------
主任:
张三
副主任:
李四
王五
组长:
马六
陈七

(8 row(s) affected)
*/