持っていた一連のデータをピボットする方法を理解する必要があり、コードは必要に応じて機能しますが、問題は、それがなぜなのかよくわからないことです。誰でも新人を助けて、以下のコードが「SELECT @columns = COALESCE + ...」に決定した理由を正確に説明できますか?
彼が COALESCE 関数で 2 つの引数を指定するのはなぜですか? そのテーブルのすべての列を返すだけですか? もしそうなら、誰かがそれがどのようにそれを行うかを正確に分析できますか. このコードは、参照としてこの Web サイトから取得しています: ( http://www.tsqltutorials.com/pivot.php )
前もって感謝します!
DECLARE @columns VARCHAR(8000)
SELECT @columns = COALESCE(@columns + ',[' + cast(Variable as varchar) + ']',
'[' + cast(Variable as varchar)+ ']')
FROM #temp123
GROUP BY Variable
DECLARE @query VARCHAR(8000)
SET @query = '
SELECT *
FROM #temp123
PIVOT
(
MAX(VaribleValue)
FOR [Variable]
IN (' + @columns + ')
)
AS p'
EXECUTE(@query)