读书人

问个简略的SQL查询

发布时间: 2011-12-26 23:09:58 作者: rapoo

问个简单的SQL查询

数据表dt
ID 名 类别

id name class
1 a c1
2 b c1
3 c c3
4 d c4
5 6 c1
7 j c2
10 k c1
. . ....
网页里面 想做两个连接 同类别的 一个是 [上一篇文章] 一个是 [下一篇文章]
例如:
查询某一ID的时候
select * from dt where id=2 and class=c1
同时想得到

下一个 同类别C1的id 上一个 同类别C1的id

SQL语句如何写?分几步写?如何实现?高手指条明路吧。迷惘中。。。

[解决办法]
select top 1 * from dt where class = 'c1 ' and id > 2 下一个
select top 1 * from dt where class = 'c1 ' and id < 2 desc 上一个
[解决办法]
另外……如果你只是要做个上一篇下一篇的连接,不需要select *,你需要的只是一个id。

select top 1 id from...就可以了,这样效率高。
[解决办法]
select top 1 a.id from dt a,(select id from dt where id=2 and class= 'c1 ') b
where a.class= 'c1 'and a.id <b.id
order by a.id desc
--上一个类别id
select top 1 a.id from dt a,(select id from dt where id=2 and class= 'c1 ') b
where a.class= 'c1 'and a.id> b.id
order by a.id asc
--下一个类别id
--常量2和 'c1 '可以在程序中用变量代替

读书人网 >asp.net

热点推荐