3 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
SELECT rowInt, Value,
COALESCE(
(
SELECT TOP 1 Value
FROM myTable mi
WHERE mi.rowInt > m.rowInt
ORDER BY
rowInt
), 0) - Value AS diff
FROM myTable m
ORDER BY
rowInt

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
SQL Server 2012及更高版本支持LAG / LEAD函數(shù)來訪問上一行或下一行。SQL Server 2005不支持此功能(在SQL2005中,您需要聯(lián)接或其他方式)。
有關(guān)此數(shù)據(jù)的SQL 2012示例
/* Prepare */
select * into #tmp
from
(
select 2 as rowint, 23 as Value
union select 3, 45
union select 17, 10
union select 9, 0
) x
/* The SQL 2012 query */
select rowInt, Value, LEAD(value) over (order by rowInt) - Value
from #tmp
LEAD(value)將返回“ over”子句中給定順序的下一行的值。
- 3 回答
- 0 關(guān)注
- 474 瀏覽
添加回答
舉報(bào)