我有这种结构的表
CREATE TABLE #test
(
ID INT IDENTITY,
[Value] INT
)
并希望找到当前行与上一行的[Value]之间的差异,只有一个连接运算符。 有人能帮助我吗?
答案 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)