请问有没有简单的办法根据一个已经ID来求出两边的ID?
如题
比如当前页面显示了某一个ID=18的记录,想求出小于它和大于它的并且最近的ID,怎么是什么语句呢?
提示一下:并不一定就是17和19哦。
有没有最简单的方法?
谢谢!
如题
比如当前页面显示了某一个ID=18的记录,想求出小于它和大于它的并且最近的ID,怎么是什么语句呢?
提示一下:并不一定就是17和19哦。
有没有最简单的方法?
谢谢!
select max(ID) ID from 表名 where ID<18
select min(ID) ID from 表名 where ID>18
大于:
select top 1 id from table where id<18 order by id desc
小于:
select top 1 id from table where id>18 order by id
反了
小于:
select top 1 id from table where id<18 order by id desc
大于:
select top 1 id from table where id>18 order by id
liumangrabbit(liumangrabbit) 的答案效率会更高些。
你用between也可以的,好像in也可以实现。
晕,这我当然会。我是想请教有没有更简单的方法啊。
2句话啊。
rs.ActiveConnection=数据库连接
rs.source="select s_min =(select top 1 id from table where id<18 order by id desc),s_max=(select top 1 id from table where id>18 order by id"
rs.open
response.write("小于="&rs("s_min")&"<br/>"&"大于="&rs("s_max"))
两个都可以,但在ORACLE中liumangrabbit的方法就不能用了,好像不支持TOP
以上的都差不多,只是,现在要看你用什么数据库了。
抱歉,没给大家说明白,我用的是ACCESS数据库
fangq(停不下的脚步)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 保留错误 (|); 没有这种错误的消息。
这怎么回事,难道ACCESS不支持?
有这个可能性,我在sql中测试没有问题
Set rs=conn.execute("select minID =(select top 1 id from table where id<18 order by id desc),maxID=(select top 1 id from table where id>18 order by id")
rs("minID")
rs("mazID")
就是你想要得