有表结构如下:id(int) start(int) end(int)
数据如下:id start end
1 33 45
2 46 78
3 79 101
4 102 232
5 235 324就是说,下一条记录的start永远是上一条记录的end我传入一个77,如果确定这个77是刚好位于79和101之间的id=3的这条记录。表记录在20W以上.
数据如下:id start end
1 33 45
2 46 78
3 79 101
4 102 232
5 235 324就是说,下一条记录的start永远是上一条记录的end我传入一个77,如果确定这个77是刚好位于79和101之间的id=3的这条记录。表记录在20W以上.
select * from tb where @value between start and end
嗯,描叙错误。只传一个77,start end不可得。
insert into tb select 1,33,45
insert into tb select 2,46,78
insert into tb select 3,79,101
insert into tb select 4,102,232
insert into tb select 5,235,324
go
declare @value int
set @value =77
select * from tb where @value between start and [end]
/*
id start end
----------- ----------- -----------
2 46 78(1 行受影响)*/
go
drop table tb
大大,假设只传入一个start和end的中间值,如何找到这条记录的位于哪个区间?