首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求A表到B表的转换SQL语句解决方案

2012-01-28 
求A表到B表的转换SQL语句如题,A表是月次表,表结构如下:ID,NAME,MONTH,CASEDAY1,CASEDAY2,...CASEDAY31001n

求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

[解决办法]
乌龟是个勤奋的人
[解决办法]
厄~想打字少就存储过程吧
貌似没有什么好办法~

热点排行