SQL2000数据库行转列问题

图片说明
如图,判断当TnRoomNum里面两个或多个相同的,把后面的姓名合并到同一列,TnDepatrment和TnRemarks同样移动,如果是NULL可为空,但是“,”这个逗号要放进去,不知道怎么写SQL语句,求大神指点!
TnName可以不用单独分列,和后面TnDepartment、TnCategory、TnRemarks一样加逗号分隔开,也可以另建一列,看哪个方便就怎么样排

4个回答

用 for xml path 可实现拼接

weixin_38357227
半世笙箫 回复waweiggfnh: 你把你第一张图片重新贴一下,贴得清楚一点
大约 2 年之前 回复
waweiggfnh
waweiggfnh 求写法
大约 2 年之前 回复
waweiggfnh
waweiggfnh 我的是一张表,不是多张表,就把相同房间号的人员姓名合并到一列,后面的部门用逗号分隔,类别是一样的,备注有就放一起,没有就空着
大约 2 年之前 回复

图片说明
查询后类似于这种格式,用逗号分隔开

select TnRoomNum,stuff(TnName,1,1,'') as TnName, stuff(TnDepatrment,1,1,'') as TnDepatrment,
stuff(TnRemarks,1,1,'') as TnRemarks
from (
select TnRoomNum,
(select ','+TnName from 表名 where TnRoomNum=a.TnRoomNum for xml path('') ) as TnName,
(select ','+TnDepatrment from 表名 where TnRoomNum=a.TnRoomNum for xml path('') ) as TnDepatrment,
(select ','+TnRemarks from 表名 where TnRoomNum=a.TnRoomNum for xml path('') ) as TnRemarks
from 表名 a
group by TnRoomNum
)b

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问