简单连接的SQL查询

时间:2014-03-14 08:43:31

标签: sql

我有这种结构的表

CREATE TABLE #test
(
    ID INT IDENTITY,
    [Value] INT
)

并希望找到当前行与上一行的[Value]之间的差异,只有一个连接运算符。 有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

select (t1.value-t2.value) as difference
from test t1 join test t2 on t1.id=t2.id-1

如果你的ID有差距可能会有问题。例如。 ID = 1,2,3,10,11,12

如果指定RDBMC,可以建议更好的解决方案。

答案 1 :(得分:1)

目前还不清楚当前以前的记录是什么。当表按ID 排序时,假设上一条记录紧接当前记录之前 分析函数根本没有连接

  select [Value] - lag([Value]) over (order by ID)
    from #test

但是你必须测试你的DBMS 是否支持分析函数(MS SQL,Oracle)