在SQL Server如何为两列

在SQL Server如何为两列

问题描述:

移行这是原始表在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/ –

尝试窗函数(假设序列是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