不好意思,没分了,可不可以问个问题啊?帮下忙啦

loveme2000ok 2006-09-21 04:51:35
一张表,如下一个字段,数据为虚拟的:
ID
1
3
6
8
9
10

我现在知道ID=8的这条记录,现在想取出6和9,即8两边的那两记录
同理ID=9时,应该取出8和10两条记录,谢谢!

...全文
115 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2006-09-21
  • 打赏
  • 举报
回复
select *,identity(int,1,1) #temp from tableName

select * from #temp
where TID=((select TID from #Temp where id=8)-1)
or TID=((select TID from #Temp where id=8)+1)
drop table #temp
itblog 2006-09-21
  • 打赏
  • 举报
回复
select * from tablename
where
(id =(select max(id) from tablename where id<8))
or
(id =(select min(id) from tablename where id>8))
hyrongg 2006-09-21
  • 打赏
  • 举报
回复
select max(id) from test where id<8
union
select min(id) from test where id>8
九斤半 2006-09-21
  • 打赏
  • 举报
回复
create table test (ID int)
insert test values (1)
insert test values (3)
insert test values (6)
insert test values (8)
insert test values (9)
insert test values (10)
--select * from test
go

create proc pTest
@id int
as
begin
select * from test
where
id=(select max(id) from test where id<@id)
or
id=(select min(id) from test where id>@id)
end
go

--我现在知道ID=8的这条记录,现在想取出6和9,即8两边的那两记录
exec pTest 8

drop proc pTest
drop table test
loveme2000ok 2006-09-21
  • 打赏
  • 举报
回复
顶一下,帮一下忙!

34,589

社区成员

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

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