数据库问题,急求解答?

xdd451820664 2013-03-01 01:54:04
表:
id 課別 工號 姓名 簽收
1 測試課 81201533 燕XX null
2 測試課 81206820 丁XX null
0 測試課 81209639 朱XX null
1 測試課 81213788 黃X null
2 測試課 81214553 孟XX null
0 測試課 81215971 侯X null
1 測試課 81215988 梁XX null
2 測試課 81216034 張XX null
0 測試課 81222073 閆X null
表数据转换如下:
id 課別 工號 姓名 簽收 id 課別 工號 姓名 簽收 id 課別 工號 姓名 簽收
1 測試課 81201533 燕XX null 2 測試課 81206820 丁XX null 0 測試課 81209639 朱XX null
1 測試課 81213788 黃X null 2 測試課 81214553 孟XX null 0 測試課 81215971 侯X null
1 測試課 81215988 梁XX null 2 測試課 81216034 張XX null 0 測試課 81222073 閆XX null
...全文
327 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdd451820664 2013-03-01
  • 打赏
  • 举报
回复
谢谢,搞定了……
xdd451820664 2013-03-01
  • 打赏
  • 举报
回复
谢谢,忘记说了,数据有很多行(行数不确定)……
zejyu 2013-03-01
  • 打赏
  • 举报
回复
如果只有简单几行就可以拼凑一下, 若行数和列数都不固定的就要用到循环


if OBJECT_ID('tempdb..#t') is not null drop table #t

select'1' as cID, N'測試課' as cClass, '81201533' as cSN, N'燕XX' as cName,null as cSign into #t
union
select'2', N'測試課', '81206820', N'丁XX',null
union
select'0', N'測試課', '81209639', N'朱XX',null
union
select'1', N'測試課', '81213788', N'黃X ',null
union
select'2', N'測試課', '81214553', N'孟XX',null
union
select'0', N'測試課', '81215971', N'侯X ',null 
union
select'1', N'測試課', '81215988', N'梁XX',null
union
select'2', N'測試課', '81216034', N'張XX',null
union
select'0', N'測試課', '81222073', N'閆X ',null

-- select * from #t 

if object_id('tempdb..#t2') is not null drop table #t2

select ROW_NUMBER() over (partition by cID order by cSN) cPrt, * into #t2 from #t

-- select * from #t2

select * from #t2 A
left join #t2 B on B.cPrt = A.cPrt and B.cID = 2
left join #t2 C on C.cPrt = A.cPrt and C.cID = 0
where A.cID = 1




34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧