SQL SERVER 2012:在单个列中减去元素

时间:2014-05-20 20:47:19

标签: sql-server-2012

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

1 个答案:

答案 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