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);
ich dies aus den obigen Code:SQL dynamische Pivot für mehrere Spalten
Symbols(varchar50) Date price quantity
apple 14/11/2016 30 15
banana 14/11/2016 22 20
i wie müssen diese
Date apple_price apple_quantity banana_price banana_quantity
14/11/2016 30 15 22 10
von oben Code erhalten i Preis nur
Ihr Code macht mir Angst. Verwenden Sie parameterzation, um SQL-Injection zu vermeiden. Außerdem hat SQL sys -Tabellen, die diese dynamisch und portierbar machen (sys.tables und sys.columns). –