我需要採取一些查詢結果並將它們展平以獲取報表。轉換SQL查詢結果
DECLARE @randomTable table (ID int, OtherID int, Val varchar(max))
insert into @randomTable(ID, OtherID, Val)
values (1, 100, 'Some Value 1'), (2, 100, 'Some Other 2'),
(3, 100, 'Some Value 3'), (4, 200, 'Some Other 4'),
(5, 200, 'Some Value 5'), (6, 300, 'Some Other 6'),
(7, 300, 'Some Value 7'), (8, 300, 'Some Other 8'),
(9, 400, 'Some Value 9'), (10, 500, 'Some Other 10')
select OtherID, Val from @randomTable
結果:
-- 100 | Some Value 1
-- 100 | Some Other 2
-- 100 | Some Value 3
-- 200 | Some Other 4
-- 200 | Some Value 5
-- 300 | Some Other 6
-- 300 | Some Value 7
-- 300 | Some Other 8
-- 400 | Some Value 9
-- 500 | Some Other 10
是否有一個SQL的方式來改變這種作爲選擇:
-- 100 | Some Value 1 | Some Other 2 | Some Value 3
-- 200 | Some Other 4 | Some Value 5
-- 300 | Some Other 6 | Some Value 7 | Some Other 8
-- 400 | Some Value 9
-- 500 | Some Other 10
注意:上面就是一個例子。我的真實數據不是靜態的。此外,在我的真實數據中,OtherID
是一個字符串值,Val
值是以varbinary存儲的圖像。
我當然要限制我將允許的列數。我想最多5(在這之後,我很好,失去了額外的行)。
有沒有辦法做到這一點?
這正是我所需要的!謝謝馬丁,你很樂意幫助我解決這個問題! – Vaccano 2011-03-27 03:51:09
Martin,非常聰明的使用rn分區! – 2011-03-27 04:18:40