我作爲如何將時間列的值劃分爲排在SQL Server 2008R2
|start || end1 |
1/06/2015 1:00 || 1/06/2015 1:30
1/06/2015 2:00 || 1/06/2015 3:00
1/06/2015 3:20 || 1/06/2015 4:00
1/06/2015 4:00 || NULL
我想要的輸出表: -
|start || end1 |
1/06/2015 1:00 || 1/06/2015 1:30
1/06/2015 1:30 || 1/06/2015 2:00
1/06/2015 2:00 || 1/06/2015 3:00
1/06/2015 3:00 || 1/06/2015 3:20
1/06/2015 3:20 || 1/06/2015 4:00
1/06/2015 4:00 || NULL
我想下面所提到的代碼,但它沒有給我想要的輸出..
with cte as
(select
start
,end1
,ROW_NUMBER() over (order by (select 1)) as rn
from #b
),cte1 as
(select top 1
start
,end1
,rn
from cte
union all
select
a.end1
,(case when (b.rn) %2 = 0 then b.start else b.end1 end)
,b.rn
from cte1 as a
inner join cte as b
on b.rn = a.rn +1
)
select start,end1
from cte1
我得到錯誤的輸出 -
| start || end1 |
1/06/2015 1:00 || 1/06/2015 1:30
1/06/2015 1:30 || 1/06/2015 2:00
1/06/2015 2:00 || 1/06/2015 4:00
1/06/2015 4:00 || 1/06/2015 4:00
有人可以幫助我請我過去2小時以來,我沒有得到所需的輸出。
什麼是您預期的輸出? – FutbolFan
我已經在我的問題的底部提到了它,就在「我輸錯了錯誤」一行的下面。我試圖製作一張桌子,但我無法做到。我的輸出表有3列start,end1,rn。 – sam
是的,如果您在問題中顯示錯誤的輸出,然後說'我沒有獲得所需的輸出結果,那麼這並沒有多大幫助。'如果您需要幫助,您需要更好地解釋它。 – FutbolFan