您可以使用PIVOT
這一點。如果你有一個已知的數值進行改造的,那麼你可以硬編碼通過靜態支點的值:
select item, [1] as ProdSched_1, [2] as ProdSched_2
from
(
select item, qty, prodsched
from yourtable
) x
pivot
(
max(qty)
for prodsched in ([1], [2])
) p
看到SQL Fiddle with Demo
如果列數是未知的,那麼你可以使用一個動態透視:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(prodsched)
from yourtable
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT item,' + @cols + ' from
(
select item, qty, prodsched
from yourtable
) x
pivot
(
max(qty)
for prodsched in (' + @cols + ')
) p '
execute(@query)
看到SQL Fiddle with Demo
請學習如何使用Shift鍵。在所有帽子打字都被認爲是張嘴(而且很粗魯)。所有小寫字母打字都會讓閱讀困難。他們發明了Shift鍵是有原因的。謝謝。 –
對不起。謝謝 – Snippet
可能重複[獲取ROWS作爲列(SQL Server動態PIVOT查詢)](http://stackoverflow.com/questions/12074939/get-rows-as-columns-sql-server-dynamic-pivot-query) – RichardTheKiwi