我有一张桌子,我希望得到的表格如我在描述中所示

时间:2016-08-27 06:49:08

标签: sql-server vba

我有一张这样的表

create table TA1
(
col1 int,col2 int,pk1 int,uom1 varchar(20),pck2 int,uom2 varchar(20)
)  

insert into ta1 values(15,18,6,'a',1,'b')
insert into ta1 values(17,12,61,'c',1,'d')

我创建了另一个像这样的表

create table ta2(col int,pck int,uom varchar(20)) 

我需要得到像这样的结果输出

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要取消隐藏数据。使用CROSS APPLY运算符执行此操作

Insert into ta2(col, pck, uom)
SELECT col, 
       pck, 
       uom 
FROM   ta1 
       CROSS apply (VALUES (col1, pk1, uom1), 
                           (col2, pck2, uom2)) 
      cs (col, pck, uom) 

或者您可以使用UNION ALL以所需的格式获得结果

select  col1 as col, pk1 as pck, uom1 as uom from ta1
union all
select col2, pck2, uom2 from ta1