我有一个结果集/ RS1,看起来像这样 -
ColName1,ColName2,ColName3,ColName4...
a,1,e,c...
b,3,r,p...
等...
RS1来自 Server1 。 ColName [X]实际上是ID,Name,Address等实名。
在 Server2 RS2上还有另一个结果集,它包含这样的列 -
Name,ColumnPosition,ColumnName
xyz,Col1,NULL
abc,Col4,NULL
asd,Col2,NULL
等
现在,我想将RS2的每个ColumnPosition映射到RS1中对应的ColumnName。我怎么做 ? SQL是否足够或者我是否需要使用一些ETL工具来轻松准确地做到这一点?
预期结果样本 -
Name,ColumnPosition,ColumnName
xyz,Col1,ColName1
abc,Col4,ColName4
asd,Col2,ColName2
答案 0 :(得分:0)
我不确定你想要什么,但是......
CREATE TABLE RS1 (ID INT, [Count] INT, [Amount] INT)
INSERT INTO RS1 VALUES(1,0,2)
INSERT INTO RS1 VALUES(2,3,1)
INSERT INTO RS1 VALUES(3,1,2)
SELECT * FROM RS1
SELECT t.ID,
x.ColPos,
x.ColName,
x.Value
FROM RS1 t
CROSS APPLY
(
VALUES
(1, 'Count', t.[Count]),
(2, 'Amount', t.[Amount])
) x (ColPos, ColName, Value)