求A表到B表的转换SQL语句
如题,A表是月次表,表结构如下:
ID, NAME, MONTH, CASEDAY1, CASEDAY2,...CASEDAY31
001 name1 200710 case1 case2 case31
002 name2 200710 case1 case2 case31
B表是日次表,表结构如下:
ID, NAME, MONTHDAY, CASE
001 name1 20071001 case1
001 name1 20071002 case2
...................................
001 name1 20071030 case30
002 name2 20071001 case1
002 name2 20071002 case2
...................................
002 name2 20071030 case30
我目前想到的方法是这样的
INSERT INTO B SELECT ID,NAME,MONTH+ '01 ',CASEDAY1 FROM A
INSERT INTO B SELECT ID,NAME,MONTH+ '02 ',CASEDAY2 FROM A
.......................................................
INSERT INTO B SELECT ID,NAME,MONTH+ '31 ',CASEDAY31 FROM A
但我觉得效率不高,每次都要执行31条SQL语句才能完成转换,大家有更简单的方法吗?
谢谢
------解决方案--------------------insert into b select
(
SELECT ID,NAME,MONTH+ '01 ',CASEDAY1 FROM A
union all
SELECT ID,NAME,MONTH+ '02 ',CASEDAY2 FROM A
......
union all
SELECT ID,NAME,MONTH+ '31 ',CASEDAY31 FROM A
) t
------解决方案--------------------乌龟是个勤奋的人
------解决方案--------------------厄~想打字少就存储过程吧
貌似没有什么好办法~