-1
A
回答
2
您可以使用PIVOT
。有兩種方法可以使用PIVOT來做到這一點,無論是對要轉換的列進行編碼的Static Pivot,還是確定執行時的列的Dynamic Pivot。
靜態數據透視:
select *
from
(
select dt, username, product,
'product'
+ cast(row_number()
over(partition by username order by product) as varchar(10)) productNum
from yourtable
) x
pivot
(
min(product)
for productNum in ([product1], [product2], [product3])
) p
order by dt
動態透視:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols =
STUFF((SELECT distinct ',' + Quotename('product'
+ cast(row_number()
over(partition by username order by product) as varchar(10)))
from yourtable
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query
= 'SELECT dt, username,' + @cols + ' from
(
select dt, username, product,
''product''
+ cast(row_number()
over(partition by username order by product) as varchar(10)) productNum
from yourtable
) x
pivot
(
min(product)
for productNum in (' + @cols + ')
) p
order by dt'
execute(@query)
0
是的,你應該使用數據透視。
但是除非你知道會有多少產品,否則你需要使用動態數據透視表 - like this。
相關問題
- 1. 如何使用SQL Server樞
- 2. SQL Server:樞軸
- 3. 樞軸大量使用SQL Server
- 4. SQL SERVER樞軸溶液
- 5. 在sql server中樞軸
- 6. 總樞軸在SQL Server
- 7. 樞軸查詢 - SQL Server 2005
- 8. SQL Server 2008 R2的樞軸
- 9. SQL Server樞軸問題
- 10. SQL Server:與分組樞軸
- 11. 在SQL Server樞軸列
- 12. 使用SQL樞軸
- 13. SQL Server 2008 R2 - 樞軸用法?
- 14. 動態SQL樞軸由列的SQL Server
- 15. SQL樞軸使用count
- 16. 使用SQL 2005樞軸
- 17. 如何使用SQL樞
- 18. 樞軸排在SQL Server列2014
- 19. SQL Server樞軸行進入列
- 20. SQL-Server 2008中的樞軸表
- 21. SQL Server - 數據透視的樞軸點
- 22. SQL Server:樞軸多個聚合體
- 23. 在SQL Server的樞轉數據2008
- 24. SQL Server 2008中樞軸視圖
- 25. 沒有聚合的SQL SERVER樞軸
- 26. 樞轉數據 - SQL Server 2008中
- 27. SQL Server樞軸訂購問題
- 28. 樞軸連接的表SQL Server上
- 29. 樞軸2項措施的SQL Server
- 30. SQL Server 2008中樞軸和的毗連