Sql server 如何在引用表中使用BETWEEN

Sql server 如何在引用表中使用BETWEEN,sql-server,Sql Server,我只是想知道如何创建一个查询,以这种方式它将检查列是否位于引用表中的中间 比如 SELECT * FROM Table1 WHERE Column1 BETWEEN ( SELECT Column1 , Column2 FROM TABLE2 ) 我只是不知道如何以正确的方式实现它 谢谢。试试这个 SELECT * FROM Table1 as t1 INNER JOIN Table2 t2 ON t1.Column1 BETWEEN t2.Column1 AND t2.Column2 如

我只是想知道如何创建一个查询,以这种方式它将检查列是否位于引用表中的中间

比如

SELECT *
FROM Table1 WHERE Column1 BETWEEN ( SELECT Column1 , Column2 FROM TABLE2 )
我只是不知道如何以正确的方式实现它

谢谢。

试试这个

SELECT *
FROM Table1 as t1 
INNER JOIN Table2 t2 ON t1.Column1 BETWEEN t2.Column1 AND t2.Column2

如果您可以在
表2
中有重叠的范围,并且您想要的是
表1
中任何范围内的记录(唯一)
表2
,则此查询将执行此操作

SELECT *
FROM Table1
WHERE EXISTS (
    SELECT *
    FROM Table2
    Where Table1.Column1 BETWEEN Table2.Column1 and Table2.Column2)
如果表2中的范围没有重叠,您也可以使用联接来解决这个问题,否则您需要使用
DISTINCT
ROW\u NUMBER()
将它们缩减为唯一的
表1
记录。

这是有效的

SELECT * FROM table1 as t1,table2 as t2
    WHERE t1.Column1 BETWEEN t2.Column1 AND t2.Column2.

我没有得到重叠范围的部分,但我认为这必须是最安全的。谢谢