SQL Server 2012中有一种简单的方法可以减去列中的n + 1 - n值吗?
即。假设我有这样的数据。
name value
matt 25
val 100
hal 75
brit 0
我想得到像这样的结果
name value subtract
matt 25 25
val 100 75
hal 75 -25
brit 0 -75
答案 0 :(得分:1)
当然,但您需要指定查询的顺序。使用具有窗口功能的LAG。
SELECT name, value, value - LAG(value, 1, 0) OVER (ORDER BY newid()) FROM your table
order by newid()
您需要替换所需的订单。
请参阅小提琴示例:http://sqlfiddle.com/#!6/1598b/6