在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
答
尝试窗函数(假设序列是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
我们是否承担“ORDER BY MARKES_Original”? –
您需要提供大量样本数据集和预期输出,并澄清您的问题。对于给出的内容,对数据做出的任何假设都可能会导致出现一个答案,该答案会给出您已列出的输出结果,但不会解决您的问题,因为在给出解决方案后,您可能会说出问题。 – scsimon
这是一个开始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –