2016-08-18 52 views
0

移行這是原始表在SQL Server如何爲兩列

Name Marks_Original 
Anil 10 
Ravi 20 
Pooja 30 
Sheela 40 
Rohit 50 
Vijay 60 

我想用2個計算列輸出如下在我的第1列的記錄是靜態的,而是我的第2列的記錄上移上下各自到第一柱

Name Marks_1 Marks_2 
Anil 0  20 
Ravi 10  30 
Pooja 20  40 
Sheela 30  50 
Rohit 40  60 
Vijay 50  0 
+0

我們是否承擔「ORDER BY MARKES_Original」? –

+0

您需要提供大量樣本數據集和預期輸出,並澄清您的問題。對於給出的內容,對數據做出的任何假設都可能會導致出現一個答案,該答案會給出您已列出的輸出結果,但不會解決您的問題,因爲在給出解決方案後,您可能會說出問題。 – scsimon

+0

這是一個開始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

回答

1

嘗試窗函數(假設序列是Marks_Original)

Select * 
     ,Marks_1 = Lag(Marks_Original,1,0) over (Order By Marks_Original) 
     ,Marks_2 = lead(Marks_Original,1,0) over (Order By Marks_Original) 
From YourTable 
Order By Marks_Original 

退貨

Name Marks_Original Marks_1 Marks_2 
Anil 10    0  20 
Ravi 20    10  30 
Pooja 30    20  40 
Sheela 40    30  50 
Rohit 50    40  60 
Vijay 60    50  0