私はいくつかの列を持つテーブルを持っているので、別のテーブルの列として列の値を変換したい。新しいテーブル内の列に行を変換する
私は自分の要件の1つのスクリーンショットを添付しています。
上の表は私のメインテーブルです。表1と以下は私の必要なテーブルです。 ありがとう
私はいくつかの列を持つテーブルを持っているので、別のテーブルの列として列の値を変換したい。新しいテーブル内の列に行を変換する
私は自分の要件の1つのスクリーンショットを添付しています。
上の表は私のメインテーブルです。表1と以下は私の必要なテーブルです。 ありがとう
私はピボット推測十分でしょう(おおや画像を投稿しないでくださいDDLが理解し、私たちはタイピングおよび/または推測保存している。。):
SELECT *
FROM (
SELECT [Action], [Key], 'Old' + Old as [a], OldValue as [Value]
FROM Table1
UNION ALL
SELECT [Action], [Key], 'New' + New, NewValue
FROM Table1
) as p
PIVOT (
MAX([Value]) FOR [a] IN ([OldCol1],[OldCol2],[OldCol3],[NewCol1],[NewCol2],[NewCol3],[NewCol45])
) as pvt
出力:その後、「Old
多くはNew`値がある場合
Action Key OldCol1 OldCol2 OldCol3 NewCol1 NewCol2 NewCol3 NewCol45
I 123 NULL NULL NULL NULL NULL NULL Sun
U 123 Dog Cat Honey Dog Mouse Bee NULL
あなたは、動的SQLが必要
それは働いていて、今私はどこで私の間違いだったか知っています。 –
私の答えがあなたを助けてくれたら大丈夫です! :) – gofr1
提案された複製があなたのところに届く間に、実際にはピボット解除してピボットする必要があります。
CREATE TABLE #Test(Action char, [Key] INT, Old varchar(5), OldValue varchar(5), New varchar(5), NewValue varchar(5));
INSERT INTO #Test VALUES
('U', 123, 'Col1','Dog','Col1','Dog'),
('U', 123, 'Col2','Cat','Col2','Mouse'),
('U', 123, 'Col3','Honey','Col3','Bee'),
('I', 123, NULL,NULL,'Col45','Sun');
SELECT PVT.Action
,PVT.[Key]
,PVT.OldCol1
,PVT.OldCol2
,PVT.OldCol3
,PVT.NewCol1
,PVT.NewCol2
,PVT.NewCol3
,PVT.NewCol45 FROM (
SELECT [Action]
,[Key]
,Label
,Value
FROM #Test
CROSS APPLY (VALUES ('Old'+Old, OldValue), ('New'+New, NewValue)) c(label, value)
)src
PIVOT
(
MAX(VALUE) FOR Label IN (OldCol1, NewCol1, OldCol2, NewCol2, OldCol3, NewCol3, NewCol45)
)PVT
ORDER BY PVT.Action Desc
Action Key OldCol1 OldCol2 OldCol3 NewCol1 NewCol2 NewCol3 NewCol45
------ ----------- ------- ------- ------- ------- ------- ------- --------
U 123 Dog Cat Honey Dog Mouse Bee NULL
I 123 NULL NULL NULL NULL NULL NULL Sun
(2 row(s) affected)
これも動作していますが、grof1のソリューションは、どこで止まっていたかのようなものでした。とにかくありがとう –
ケーススタント –
@Jensを使用して、mysql raw to columnを簡単にピボットできます。間違って私はSQL Server 2012を使用しています。 –
[効率的にSQL Serverの列に行を変換します。](http:// stackoverflow。 com/questions/15745042/rows-to-columns-in-sql-server) – Ash