做一个选择我得到一行,我想得到表中的前一行。
create table t1
id char(3),
dat datetime
);
id dat
a 2014-04-21
b 2014-10-01
c 2014-10-15
select id from t1 where id='c'
并希望找到前一行,即b
答案 0 :(得分:2)
怎么样:
DECLARE @id CHAR(3)
SET @id = 'c'
select
id
from
table
where
id=@id
OR
id = (SELECT MAX(id) FROM table WHERE id < @id)
答案 1 :(得分:1)
获取id
不大于指定值的所有行,然后将结果限制为前两行:
SELECT TOP (2)
id
FROM
t1
WHERE
id <= 'c'
ORDER BY
id DESC
;