DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(Symbol)
from Opt
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT Date,' + @cols + ' from
(
select Date, Symbol, Price
from Opt
)x
pivot
(
max(Price)
for Symbol in (' + @cols + ')
) p'
execute(@query);
我得到這個從上面的代碼:SQL動態樞紐多個列
Symbols(varchar50) Date price quantity
apple 14/11/2016 30 15
banana 14/11/2016 22 20
我需要這樣的
Date apple_price apple_quantity banana_price banana_quantity
14/11/2016 30 15 22 10
從上面的代碼中,我得到的只是價格
您的代碼讓我害怕。使用參數化來避免SQL注入。此外,SQL有sys表,可以使這種動態和便攜式(sys.tables和sys.columns浮現在腦海)。 –