在SQL查询中,有时需要在查当前行时,同时将上一(几)行或下一(几)行数据与当前行合并到一行,便于做计算或查询显示。下面是我写的一个例子:
with t as
( select top 1000 * from 客户资金表名 where 客户名称='北京科技公司' order by 创建时间),t1 as( SELECT top 1000 当前行=ROW_NUMBER() OVER(ORDER BY 创建时间),* FROM t),t2 as( SELECT top 1000 当前行=ROW_NUMBER() OVER(ORDER BY 创建时间),* FROM t)select t1.客户名称,t1.结余资金帐 as 本期结余资金帐,t1.创建时间 t2.结余资金帐 as 上期结余资金帐from t1,t2 where t1.当前行=(t2.当前行+1)