查找2列之间是否存在phonenumbers

Cha*_*des 5 sql t-sql loops between

我正在尝试使用TSQL传递两个10位数的电话号码块.

让我们说:

TelephoneNumber1: 1234560095
TelephoneNumber2: 1234561005
Run Code Online (Sandbox Code Playgroud)

我的表由3列组成:

ID, StartBlock, EndBlock
1, 5671231000, 5671232000
2, 1234561000, 1234562000
3, 2175551200, 2175551300
Run Code Online (Sandbox Code Playgroud)

所以我要做的是找到之间的所有数字TelephoneNumber1,TelephoneNumber2并查看它之间StartBlockEndBlock表中的任何记录之间是否存在.

在这个例子中,它会在第二个记录中找到一个已经在使用的数字,因为当它1234560095到达时1234561000,它会在已经在使用中找到它.

如何完成此操作以查找StartBlock和EndBlock之间正在使用的数字?

Mik*_*son 2

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
Run Code Online (Sandbox Code Playgroud)