0

我有一个看起来像这样的结果集/RS1 -

ColName1,ColName2,ColName3,ColName4... 
a,1,e,c...
b,3,r,p...

ETC...

RS1 来自Server1。ColName[X] 实际上是真实姓名,如 ID、姓名、地址等。

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
4

1 回答 1

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)
于 2013-10-07T20:35:35.930 回答