SQL使用列表选择两列之间的值

时间:2015-07-14 18:35:44

标签: sql sqlite

我尝试查找给定值列表的行,其中一个值位于两列之间的范围内,例如:

id     column1    column2
1      1          5
2      6          10
3      11         15
4      16         20
5      21         25
...
99     491        495
100    496        500

我想提供一个值列表,例如(23, 83, 432, 334, 344)将返回行

id     column1    column2
5      21         25
17     81         85
87     431        435
67     331        335
69     341        345

到目前为止,我能想到这样做的唯一方法是将每个人分成它自己的电话

SELECT * FROM TableA WHERE (column1 < num1 AND num1 < column2)

然而,当数字列表大约有几百万时,这种情况就会非常糟糕。

有没有更好的方法呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

将数百万个数字放入SQL命令本身是不实用的。

显然,您必须将数字放入(临时)表中。 然后你可以加入这两个表:

SELECT *
FROM TableA JOIN TempTable
  ON TempTable.Value BETWEEN TableA.column1 AND TableA.column2;