1

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

SELECT *
FROM Table1 WHERE Column1 BETWEEN ( SELECT Column1 , Column2 FROM TABLE2 )

我只是不知道如何以正确的方式实现它。

谢谢你。

4

3 回答 3

2

如果您可以在 中具有重叠范围Table2,并且您想要的Table1只是在 中的任何范围内的(唯一)记录Table2,那么此查询将执行此操作。

SELECT *
FROM Table1
WHERE EXISTS (
    SELECT *
    FROM Table2
    Where Table1.Column1 BETWEEN Table2.Column1 and Table2.Column2)

如果 Table2 中的范围不重叠,您也可以使用 JOIN 解决此问题,否则您将需要使用其中一个DISTINCTROW_NUMBER()将它们缩减为唯一Table1记录。

于 2012-10-09T06:07:51.133 回答
1

试试这个....

SELECT *
FROM Table1 as t1 
INNER JOIN Table2 t2 ON t1.Column1 BETWEEN t2.Column1 AND t2.Column2
于 2012-10-09T06:04:44.780 回答
0

这行得通

SELECT * FROM table1 as t1,table2 as t2
    WHERE t1.Column1 BETWEEN t2.Column1 AND t2.Column2.
于 2012-10-09T06:35:50.913 回答