如何检查 int[] 数组是否包含小于 X 的值?

Gaj*_*jus 6 postgresql

我们可以使用 来检查数组中是否包含特定值'X' = ANY(haystack)。但是,如何检查整数数组是否包含小于 X 的值?例如,我想查找至少有一个值小于 100 的所有数组。

Gaj*_*jus 8

不知道这是否是答案,但这样做的一种方法是创建一个范围,然后检查它们是否重叠,例如

int4range(0, 100, '[]') @> ANY(t2.ages)
Run Code Online (Sandbox Code Playgroud)

ages这在处理有限数的情况下有效,但如果可以包含任何负值则不起作用。

更新:没关系,这只是100 >= ANY(t2.ages)