SELECT 其中范围集合中的值

SELECT where value in collection of ranges

我正在尝试 select 值存在于任何范围集合中的行。到目前为止,我只能完成以下工作:

SELECT * FROM table
WHERE num <@ numrange(1,4) OR num <@ numrange(7,11)

我希望我能得到类似

的东西
SELECT * FROM table
WHERE num <@ ANY(numrange(1,4), numrange(7,11))

工作,但我没有任何运气。

有没有比将 OR 链接在一起更好的解决方案?

你很接近... ANY(...) 表达式中的值需要是一个数组:

SELECT * FROM table
WHERE num <@ ANY(ARRAY[numrange(1,4), numrange(7,11)])