我有一個結果集是這樣的:T-SQL數據變換
ID Value 1 100 2 50 3 200 4 30 - - - -
我希望它轉化爲以下幾點:
Value1 Value2 100 50 200 30 - - - -
如何使用T-SQL辦呢?
我有一個結果集是這樣的:T-SQL數據變換
ID Value 1 100 2 50 3 200 4 30 - - - -
我希望它轉化爲以下幾點:
Value1 Value2 100 50 200 30 - - - -
如何使用T-SQL辦呢?
使用此:
select a.Value, b.Value
from
(
select row_number() over(order by ID) [rn], Value
from @t
)a
left join
(
select row_number() over(order by ID) [rn], Value
from @t
)b on b.rn = a.rn + 1
where a.rn % 2 = 1
的樣本數據:
declare @t table (ID int, Value int)
insert @t values (1,100), (2,50), (3,200), (4,30)
輸出:
Value Value
----------- -----------
100 50
200 30
@kumar,不客氣! –
左連接而不是連接也許?嘗試5行,就像我的例子。 –
@ t-clausen.dk,當然,但它可能取決於任務...我更新了我的答案:-) –
declare @t table (id int, v int)
insert @t values (1, 10)
insert @t values (2, 20)
insert @t values (3, 30)
insert @t values (4, 40)
insert @t values (5, 50)
select t1.v, t2.v
from @t t1
left join @t t2
on t1.id + 1 = t2.id
where t1.id %2 = 1
+1,你對差距是正確的:-) –
是否IDS保證是連續的(沒有他們之間的差距)? – Quassnoi
請更詳細地描述您嘗試實現的目標以及您正在使用的SQL版本。 –
ID從1開始連續且沒有間隔。我使用SOL Server 2005 – kumar