回答
如果你想在單獨的列這個數據,那麼你可以使用PIVOT
功能:
select *
from
(
select name, quantity,
'Qty_'+cast(row_number() over(partition by name order by quantity) as varchar(10)) rn
from yourtable
) src
pivot
(
max(quantity)
for rn in (Qty_1, Qty_2, Qty_3)
) piv
見SQL Fiddle with Demo。樞軸的結果是:
| NAME | QTY_1 | QTY_2 | QTY_3 |
--------------------------------
| abc | 2 | 3 | 5 |
如果你想在一列這個數據,那麼你可以使用FOR XML PATH
和STUFF()
:
SELECT
t1.Name,
STUFF(
(SELECT ' ' + cast(quantity as varchar(10))
FROM yourtable t2
WHERE t1.name = t2.name
FOR XML PATH (''))
, 1, 1, '') AS List
FROM yourtable t1
GROUP BY t1.Name
見SQL Fiddle with Demo。此查詢的結果是:
| NAME | LIST |
----------------
| abc | 2 3 5 |
隨着旋轉功能,如果你有數目不詳的量值,那麼你可以使用動態SQL:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(rn)
from
(
select 'Qty_'+cast(row_number() over(partition by name order by quantity) as varchar(10)) rn
from yourtable
) t
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT name,' + @cols + ' from
(
select name, quantity,
''Qty_''+cast(row_number() over(partition by name order by quantity) as varchar(10)) rn
from yourtable
) x
pivot
(
max(quantity)
for rn in (' + @cols + ')
) p '
execute(@query)
謝謝。但是如果我有隨機數行'abc qty',第一個例子會工作嗎? – 2013-02-28 15:51:41
@SergiiRechmp請參閱我的編輯。如果你使用的是數據透視函數和它的值數量未知,那麼你將不得不使用動態sql – Taryn 2013-02-28 15:55:28
謝謝bluefeet,它運作良好。但它對我來說有點困難。你能告訴我,我可以在哪裏輸入where子句(例如'where quantity> 3')以及如何從最小值到最大值刪除排序?我不需要它,似乎我做了一個壞榜樣。 – 2013-03-04 15:51:43
- 1. JSTL SQL如何將列名顯示爲表中的列?
- 2. 顯示sql錶行作爲列
- 3. 如何將行顯示爲列?
- 4. 如何在SQL查詢中將列顯示爲行?
- 5. 將行顯示爲列
- 6. ColdFusion - 將行顯示爲列
- 7. 將子行顯示爲列
- 8. 將行顯示爲列
- 9. 將div顯示爲行顯示爲div顯示爲列
- 10. 如何將表格行數據顯示爲列?
- 11. jQuery UI將列表顯示爲列表
- 12. 如何顯示的列行的SQL Server
- 13. 如何顯示列表爲表格?
- 14. 在SQL Server中顯示幾行爲列
- 15. 如何將Oracle表顯示爲表?
- 16. 如何在SQL Server中將數據從行顯示到列中
- 17. 如何使用兩行將兩列顯示爲一列?
- 18. 如何將html表單列顯示爲多列?
- 19. 如何在ComboBox中將多列顯示爲列表?
- 20. 如何將SQL JOIN的結果顯示爲單獨的列?
- 21. 如何在SQL中將水平數據顯示爲垂直列?
- 22. 在SQL Server中,如何在列中顯示錶行值?
- 23. 如何在php頁面的選項列表中顯示sql行
- 24. 如何顯示列表進程,當我在c運行sql * loader#
- 25. 如何顯示雙行列表視圖?
- 26. 如何在兩行中顯示列表?
- 27. 顯示列到行SQL
- 28. 如何將此SQL查詢顯示爲一個表格
- 29. SQL/Access可以將外鍵行顯示爲列嗎?
- 30. 將列顯示爲複雜Select語句中的行sql
多少列有你想要的結果嗎? 3或1的值與空格分隔? – 2013-02-28 15:27:07