Sign-up....

请问有没有简单的办法根据一个已经ID来求出两边的ID?

如题

比如当前页面显示了某一个ID=18的记录,想求出小于它和大于它的并且最近的ID,怎么是什么语句呢?

提示一下:并不一定就是17和19哦。

有没有最简单的方法?

谢谢!

[88 byte] By [msdn] at [2007-8-15 10:04:55]
# 1 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

select max(ID) ID from 表名 where ID<18

select min(ID) ID from 表名 where ID>18

zhjian6 at 2005-9-8 8:20:23 >
# 2 Re: 请问有没有简单的办法根据一个已经ID来求出两边的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 at 2005-9-8 8:31:32 >
# 3 Re: 请问有没有简单的办法根据一个已经ID来求出两边的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 at 2005-9-8 8:34:45 >
# 4 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

liumangrabbit(liumangrabbit) 的答案效率会更高些。

renliquan at 2005-9-8 8:35:16 >
# 5 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

你用between也可以的,好像in也可以实现。

eastjazz at 2005-9-8 8:41:33 >
# 6 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

晕,这我当然会。我是想请教有没有更简单的方法啊。

2句话啊。

singit3 at 2005-9-8 8:43:50 >
# 7 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

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"))

fangq at 2005-9-8 8:59:11 >
# 8 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

两个都可以,但在ORACLE中liumangrabbit的方法就不能用了,好像不支持TOP

lizhaogui at 2005-9-8 8:59:21 >
# 9 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

以上的都差不多,只是,现在要看你用什么数据库了。

holoon at 2005-9-8 9:41:39 >
# 10 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

抱歉,没给大家说明白,我用的是ACCESS数据库

singit3 at 2005-9-8 10:06:59 >
# 11 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

fangq(停不下的脚步)

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][ODBC Microsoft Access Driver] 保留错误 (|); 没有这种错误的消息。

这怎么回事,难道ACCESS不支持?

singit3 at 2005-9-8 10:17:23 >
# 12 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

有这个可能性,我在sql中测试没有问题

fangq at 2005-9-8 12:17:03 >
# 13 Re: 请问有没有简单的办法根据一个已经ID来求出两边的ID?

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")

就是你想要得

liumangrabbit at 2005-9-9 12:53:11 >

Web

All Classified