如何加入范围内的pk

我有下表:

表A

PK VALUE
----------
01 AA
03 BB
07 CC
19 DD

表B

FROM TO VALUE
------------------
01   04 ZZ
05   10 YY
11   20 XX

我想联接这两个表,以使表A中的PK与表B中的范围from-to相匹配。

所需的结果将是:

PK VALUE FROM TO VALUE
----------------------
01 AA    01   04 ZZ
03 BB    01   04 ZZ
07 CC    05   10 YY
19 DD    11   20 XX

有什么建议吗?

非常感谢您!

ac2234 回答:如何加入范围内的pk

您可以在join条件下between

select ta.*,tb.*
from tablea ta
inner join tableb tb on ta.pk between tb.from and tb.to

或使用显式比较:

select ta.*,tb.*
from tablea ta
inner join tableb tb 
    on  ta.pk >= tb.from 
    and ta.pk <= tb.to
,

您可以使用以下内容:

SELECT A.PK,A.VALUE,B.[FROM],B.[TO],B.VALUE
FROM A INNER JOIN B ON A.PK BETWEEN B.[FROM] AND B.[TO]

demo on dbfiddle.uk


您考虑删除范围并改用精确值。 MSSMS上的A comparison of these two solutions显示以下内容:

enter image description here

所以您当前的解决方案并不是那么低效。

本文链接:https://www.f2er.com/3153307.html

大家都在问