我需要查询临近几条记录,比如输入的id是20,就需要查到18、19、20、21、22。
这样的存储过程该怎么写呢?
这样的存储过程该怎么写呢?
解决方案 »
- 请教一个求百分比SQL的问题
- SQL2005, 如何得到一个数据库中所有表的表结构?
- 奇怪的查询速度
- 假如搞自主产权的数据库平台,门槛有多高?
- 急!!!请一难度sql语句
- SQLSERVER密码忘了,只有应用程序,怎么获得SQL密码?
- 分页存储过程的降序问题
- 建外键问题
- oracle,sql server等大的数据库能在WIN98下很好的安装和运行吗?JSP如何与他们结合呢?
- 我用VB(ADO)+SQL Server7.0帮客户写的数据库程序,应该怎样打包?
- a表与b表有相同结构的字段,如何实现a表增加记录后,B表同样增加一条同样的记录
- 想学习XML在T-SQL中的应用,但是基础的都看不懂。谁能告诉点基础啊?
set @id=20select * from tb where id in(@id-2,@id-1,@id,@id+1,@id+2)
?
set @id = 20
select *
from tb
where id between @id - 2 and @id + 2
@id int
as
select *
from tb
where id between @id - 2 and @id + 2
但是如果相邻的记录被删除呢?
select
*,
编号=(select count(id)+1 from tb where id<t.id)
from tb t
CREATE PROCEDURE [dbo].[near5pic]
@id int
AS
BEGIN
declare @userid int
select @userid = userid from pic Where id = @id
select id,smallpic
FROM pic
WHERE id=@id
OR id in(SELECT top 3 id
FROM pic WHERE id < @id and userid = @userid order by id desc)
OR id in(SELECT top 3 id
FROM pic WHERE id > @id and userid = @userid order by id)
end结贴