Есть ли способ проверить, включает ли массив диапазона другой массив диапазона в postgres
create table t(f int4range[])
insert into t values(array[int4range(1, 3), int4range(5,8)]);
select * from t where myincludes(f, array[int4range(1,2), int4range(5,6)]
этот SQL вернет данные:
| [NumericRange(1, 3, '[)'), NumericRange(5, 8, '[)')] |
+------------------------------------------------------+
длина массива может не совпадатьбыть таким же.но диапазон не будет перекрываться.
Один из способов, которым я могу придумать, - это циклически обработать аргументы, а затем проверить, существует ли какой-либо диапазон, содержащий аргумент, подобный этому:
for i in arguments:
contains := false
for j in data:
if j contains i:
contains = true
break // check the next argument
if contains == false:
return false
Но мне интересно, есть ли другой способ, которым я могу достичь этого.Спасибо!