一个关于SQL的问题
已知产品ID和该ID产品所在的类,
通过这两个条件找出这个产品所在类的上一个产品的ID号和下一个产品的ID号,
当该产品处于第一个记录或者最后一个记录时则只要找出两个记录。
以上是一个关于SQL的问题,要考虑执行效率,请问可以如何解决,在数据库设计上有什么要求?
问题点数:30、回复次数:7Top
1 楼lsxaa(小李铅笔刀)回复于 2004-12-03 23:17:03 得分 5
select top 3 with ties *
from t
where 类=该ID产品所在的类
order by 产品ID-已知产品IDTop
2 楼wisechl(天生我才)回复于 2004-12-03 23:29:18 得分 0
麻烦楼上能解释一下吗?Top
3 楼wisechl(天生我才)回复于 2004-12-03 23:29:55 得分 0
好象还得考虑数据库的设计问题?Top
4 楼wisechl(天生我才)回复于 2004-12-04 02:12:21 得分 0
嫌分不够,我还可以加的~~Top
5 楼yingqing(曾明)回复于 2004-12-04 08:21:29 得分 5
WITH TIES
指定可從基底結果集傳回的額外資料列,其值與 TOP n (PERCENT) 資料列最後項目所顯示的 ORDER BY 資料行值相同。只有在 ORDER BY 子句已指定完成後方可指定 TOP ...WITHTop
6 楼wisechl(天生我才)回复于 2004-12-04 21:32:27 得分 0
自己顶一下~!Top
7 楼xiaoxiangqing(肖祥清)回复于 2004-12-04 23:28:36 得分 20
--假設表名為title,查找產品的ID為100,它所對應的類title_name為'電子'
select 說明='查找產品所在行',* from title where id=100
union
select 說明='查找產品上一行',* from title where id in(select max(id) from title where id<100 and title_name='電子')
union
select 說明='查找產品下一行',* from title where id in(select min(id) from title where id>100 and title_name='電子')
Top




