我目前有一些不透明的查询,每个查询大约2000行。我需要获取这些queires的结果,然后放入一个新表来匹配一个键。
查询示例:
Select DeviceSlot
FROM tbl1
unpivot(
DeviceSlot
For col in(
col1,
col2,
col3,
)
)AS Unpivot
现在我需要匹配查询的结果,并将其插入到一个包含大约20,000行的新表中。 伪代码:
Insert Into tbl2(DeviceSlot)
Select DeviceSlot
FROM tbl1
unpivot(
DeviceSlot
For col in(
col1,
col2,
col3
)
)AS Unpivot2
Where tbl1.key = tbl2.key
我对如何做到这一点感到非常困惑,如果不清楚我会道歉。 我还有另一个unpivot查询为不同的列做同样的事情。
答案 0 :(得分:0)
不确定你要求的是什么。虽然未正确地“标准化”数据,但通常在未翻转期间导出所需的“密钥”,例如,在未旋转的数据中重复原始表的id列以下以表示某个新表的外键。
MS SQL Server 2014架构设置:
CREATE TABLE Table1
([id] int, [col1] varchar(2), [col2] varchar(2), [col3] varchar(2))
;
INSERT INTO Table1
([id], [col1], [col2], [col3])
VALUES
(1, 'a', 'b', 'c'),
(2, 'aa', 'bb', 'cc')
;
查询1 :
select id as table1_fk, colheading, colvalue
from (
select * from table1
) t
unpivot (
colvalue for colheading in (col1, col2, col3)
) u
<强> Results 强>:
| table1_fk | colheading | colvalue |
|-----------|------------|----------|
| 1 | col1 | a |
| 1 | col2 | b |
| 1 | col3 | c |
| 2 | col1 | aa |
| 2 | col2 | bb |
| 2 | col3 | cc |