0

次のような結果セット/RS1があります-

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

等...

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 に答える