表1:
kode | 101 | 102 | 103 | 104
=================================
1234 | 100 | 200 | 300 | 400
4555 | 1200 | 130 | 14500 | 1550
5012 | 100 | 150 | 350 | 440
表2:
kode | field1 | field2
=======================
1234 | 101 | 100
1234 | 102 | 200
1234 | 103 | 300
1234 | 104 | 400
4555 | 101 | 1200
4555 | 102 | 130
4555 | 103 | 14500
4555 | 104 | 1550
5012 | 101 | 100
5012 | 102 | 150
5012 | 103 | 350
5012 | 104 | 440
我在table-1
中有数据,如何将数据从table-1
插入到table-2
与使用像unpivot这样的sql查询来通过使用set @cols来旋转哪个动态
答案 0 :(得分:1)
您可以使用UNPIVOT创建所需的数据集。假设您的表格如下所示:
create table table1 (
kode int,
[101] int,
[102] int,
[103] int,
[104] int
);
insert into table1 values
(1234 , 100 , 200 , 300 , 400),
(4555 , 1200 , 130 , 14500 , 1550),
(5012 , 100 , 150 , 350 , 440);
您的查询将如下所示
SELECT kode, field1, field2
FROM table1
UNPIVOT
(
field2 FOR field1 IN ([101], [102], [103], [104])
) AS up;
那将给您想要的结果。
让我们以这种方式创建一个新表
create table table2 (
kode int,
field1 int,
field2 int
);
将UNPIVOT的数据填充到表2
insert into table2
SELECT kode, field1, field2
FROM table1
UNPIVOT
(
field2 FOR field1 IN ([101], [102], [103], [104])
) AS up;
select * from table2;