我通常必须在一个非常大的表中查询多个变量,每个变量有很多条件。很多时候,一个变量需要查询多个范围。例如,我可能需要 VAR_1 的所有记录,其中 VAR_1 介于 200-300、350-400、450-500 之间。
通常我会这样写,但有人告诉我使用IN()
而不是多个 OR 会更有效。
SELECT * FROM table
WHERE VAR_1 BETWEEN '200' AND '300' OR
VAR_1 BETWEEN '350' AND '400' OR
VAR_1 BETWEEN '450' AND '500'
OR
有什么方法可以压缩这些信息并通过在 中嵌套LIKE
orBETWEEN
子句来摆脱s IN()
?类似于以下内容:
WHERE VAR_1 IN (BETWEEN '200' AND '300', BETWEEN '350' AND '400', BETWEEN '450' AND '500')
或者
WHERE VAR_1 IN ('[200-300]','[350-400]','[450-500]')
我已经尝试过这样的事情,但语法显然不正确。您可以指出我的任何想法或方向都会很棒,但对于 SQL 来说还是很新的。