34,576
社区成员
发帖
与我相关
我的任务
分享
--不想使用(因为数据量太大了,这样好慢,有没有什么比较快的方式)
select 姓名,课程,分数 from tab
union all
select 姓名,课程2,分数2 from tab
DECLARE @tab TABLE(姓名 NVARCHAR(10), 课程 NVARCHAR(10), 分数 INT, 课程2 NVARCHAR(10), 分数2 INT);
INSERT @tab(姓名, 课程, 分数, 课程2, 分数2)
VALUES('张三', '语文', 90, '历史', 95),
('张三', '数学', 91, '物理', 96),
('张三', '英语', 92, '化学', 97);
--查询语句:
SELECT t.姓名,
a.课程,
a.分数
FROM @tab t
OUTER APPLY(SELECT * FROM (VALUES(t.分数, t.课程), (t.分数2, t.课程2)) AS f(分数, 课程) )a;