求一列数据之间的差

giftzheng 2007-11-06 10:02:42
例 :
有个数字字段a
a
1
3
5
7

如何得到他们之间的差
2
2
2
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2007-11-06
  • 打赏
  • 举报
回复
--不过,最好使用临时表
create table tb(a int)
insert into tb values(1)
insert into tb values(3)
insert into tb values(5)
insert into tb values(7)
go

select id = identity(int,1,1) , a into tmp from tb

SELECT
a = (SELECT TOP 1 a FROM tmp WHERE id > A.id order by id ) - a
FROM tmp A

drop table tb , tmp

/*
a
-----------
2
2
2
NULL

(所影响的行数为 4 行)
*/
dawugui 2007-11-06
  • 打赏
  • 举报
回复
create table tb(a int)
insert into tb values(1)
insert into tb values(3)
insert into tb values(5)
insert into tb values(7)
go

SELECT
a=(SELECT TOP 1 a FROM TB WHERE a>A.a order by a )-a
FROM TB A

drop table tb

/*
a
-----------
2
2
2
NULL

(所影响的行数为 4 行)
*/
chuifengde 2007-11-06
  • 打赏
  • 举报
回复
select x=(select min(a) from a where a>b.a)-a from a b
OracleRoob 2007-11-06
  • 打赏
  • 举报
回复

create table T(a int)

insert into T select 1
insert into T select 3
insert into T select 5
insert into T select 7

select identity(int,1,1) as id,a
into #t
from T

select a-(select a from #T where id=t1.id-1)
from #T as t1
where id>1

drop table T,#T
子陌红尘 2007-11-06
  • 打赏
  • 举报
回复
select identity(int,1,1) as nid,a into # from 表

select b.id-a.id from # a,# b where a.nid+1=b.nid

drop table #

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧