次のテーブルのピボットを解除しようとすると問題が発生します。
| | 操作 | ...その他の列... | A1 | B1 | C1 | A2 | B2 | C2 | A3 | B3 | C3 | ... |
このようなものに...
| | 操作 | ...その他の列... | A値 | B値 | CValue |
今はこんな感じでやってます
SELECT operation , ...other columns , Avalue, BValue , CValue
FROM (SELECT operation, ...other columns, A1, B1, C1
FROM MyTable
UNION ALL
SELECT operation, ...other columns, A2, B2, C2
FROM MyTable
UNION ALL
SELECT operation, ...other columns, A3, B3, C3
FROM MyTable
)
問題は、私が 30 セットの ABC を持っていることです。unpivot を使用してみましたが、適切な解決策を思い付くことができませんでした。これを使用するのはこれが初めてです。
これは UNPIVOT を使用した私の試みです
SELECT opration
, ...other columns ...
,AValue
,BValue
,CValue
FROM MyTable
UNPIVOT ( [AValue] FOR XX IN (A1,A2,A3,...,A30)) AS upv1
UNPIVOT ( [BValue] FOR yy IN (B1,B2,B3,...,B30)) AS upv2
UNPIVOT ( [CValue] FOR ZZ IN (C1,C2,C3,...,C30)) AS upv3
問題は、予想される行が約 10k であるはずなのに、なぜ何百万行も返されるのか理解できないことです。何か案は?
編集:各 UNPIVOT は、「データ爆発」を引き起こす前の unpivot ステートメントの結果セットで機能することに気付きました。
ありがとう