日期:2014-05-17  浏览次数:20423 次

求助,如何查询指定多条记录的前一条,后一条记录
如题,我有一个数据表
id hezhi
1 26 
2 25
3 15
4 6
.
.
.
我想查询出hezhi=指定值 的上一条,和下一条记录。语句该怎么写。ps hezhi 不唯一。比如6 hezhi可以有n多条记录相同。

------解决方案--------------------
SQL code
CREATE TABLE test (id int ,hezhi int )
INSERT INTO test 
SELECT 1, 26  
UNION ALL 
SELECT 2, 25
UNION ALL 
SELECT 3, 15
UNION ALL 
SELECT 4, 6
UNION ALL 
SELECT 5, 6

SELECT * 
FROM test a
WHERE EXISTS (
SELECT 1 FROM (SELECT id FROM test WHERE hezhi=6  ) b WHERE   a.id BETWEEN b.id-1 AND b.id+1
)
/*
id          hezhi
----------- -----------
3           15
4           6
5           6

(3 行受影响)
*/