10行のテーブルがあります
id values
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
@id = 5 の前に 2 行、後に 2 行を取得したい。
どのように得ることができますか?
10行のテーブルがあります
id values
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
@id = 5 の前に 2 行、後に 2 行を取得したい。
どのように得ることができますか?
編集これは期待どおりに機能するはずです(うまくいけば):
select id, value
from [table]
where id-@id >= -2
AND id-@id <= 2
AND id-@id <> 0
実行中のSQLは次のとおりです: http://sqlfiddle.com/#!6/ca4e5/3/0
考えられる解決策の 1 つ:
select *
from table
where id in (3, 4, 6, 7)
int 変数 @id を使用している場合は、次のようにできます。
select *
from table
where id in (@id-2, @id-1, @id+1, @id+2)
前の 2 つを選択するには:
select top 2 *
from tablename
where id < @id
order by id desc
次の 2 つを選択するには:
select top 2 *
from tablename
where id > @id
order by id asc