北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
假如有一张学生成绩表,学生人数1万名,考试科目100个。
表1
学号 语文 数学 英语 ... (此处100个科目)
001 90 91 92
002 93 94 95
003 96 97 98
... ... ... ...
如何把表1转为表2格式?
表2
学号 科目 成绩
001 语文 90
001 数学 91
001 英语 92
002 语文 93
002 数学 94
002 英语 95
... ... ...
我已请教了一些搞编程的人,只得到下面一个笨方法,:
SELECT 学号,'语文'as 科目,数学 as 成绩 FROM 表1
union
SELECT 学号,'数学'as 科目,语文 as 成绩 FROM 表1
union
SELECT 姓名,'英语'as 科目,英语 as 成绩 FROM 表1
union
...
union
....;
但是上面的办法好像有问题,union次数太多了会报错,删掉一部分才能正常运行。
我的问题:
1.上面笨办法是不是union次数太多了不行,为什么?
2.有没有更好的办法?
3.如果表2转表1用什么语句?
请各位大侠指点,感激不尽!