我正在尝试使用TSQL传递两个10位电话号码块。
可以说:
TelephoneNumber1: 1234560095
TelephoneNumber2: 1234561005
我的表格由3列组成:
ID, StartBlock, EndBlock
1, 5671231000, 5671232000
2, 1234561000, 1234562000
3, 2175551200, 2175551300
所以我想做的是找到
TelephoneNumber1
和TelephoneNumber2
之间的所有数字,并查看表中StartBlock
和EndBlock
之间的任何记录之间是否存在该数字。在此示例中,它将找到第二条记录中已在使用的数字,因为
当
1234560095
进入1234561000
时,它将发现它已在使用中。我如何做到这一点以找到StartBlock和EndBlock之间正在使用的数字?
最佳答案
declare @T table
(
ID int,
StartBlock bigint,
EndBlock bigint
)
insert into @T values
(1, 5671231000, 5671232000),
(2, 1234561000, 1234562000),
(3, 2175551200, 2175551300)
declare @TelephoneNumber1 bigint
declare @TelephoneNumber2 bigint
set @TelephoneNumber1 = 1234560095
set @TelephoneNumber2 = 1234561005
select *
from @T
where StartBlock <= @TelephoneNumber2 and
EndBlock >= @TelephoneNumber1