一个高难度的SQL语句怎样实现?有横向表转向纵向。

liujxing263 2005-03-22 01:04:55
有一表如下:
ID 姓名 语文 数学 英语
1 张三 80 90 70
2 李四 90 80 99
3 王五 85 96 88
怎样通过SQL语句生成如下:
ID 姓名 科目 成绩
1 张三 语文 80
2 张三 数学 90
3 张三 英语 70
4 李四 语文 90
5 李四 数学 80
6 李四 英语 99
7 王五 语文 85
8 王五 数学 96
9 王五 英语 88
请各位数据库大侠指点!!
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujxing263 2005-03-23
  • 打赏
  • 举报
回复
谢谢!
liujxing263 2005-03-23
  • 打赏
  • 举报
回复
哥们,你真厉害!
佩服!!
能否教个朋友?
我的QQ:56273032
changechange 2005-03-22
  • 打赏
  • 举报
回复
insert into 新表(姓名,科目,成绩) select 姓名,"语文" as 科目,语文 as 成绩 from 老表 union all select 姓名,"数学" as 科目,数学 as 成绩 from 老表 union all ..... 依次类推

liujxing263 2005-03-22
  • 打赏
  • 举报
回复
热心的朋友帮我顶一下呀!
changechange 2005-03-22
  • 打赏
  • 举报
回复
没有人告诉你要生成新表。
但是 ID 这个字段你是否考虑过如何配置?要生成新表只是为了显示ID 字段。如果你不要显示的话非常简单

select 姓名,"语文" as 科目,语文 as 成绩 from 老表 union all select 姓名,"数学" as 科目,数学 as 成绩 from 老表 union all ..... 依次类推

即可
白衣染霜陈 2005-03-22
  • 打赏
  • 举报
回复
多重SQL语句可以实现,不知是否需要?
liujxing263 2005-03-22
  • 打赏
  • 举报
回复
还要生成新表呀?
最好不要生成新表。
cb0912cn 2005-03-22
  • 打赏
  • 举报
回复
斑竹后面不敢造次~~
解法一流
顶~~~~

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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