不在Array列Postgress中的值列表


  1. 我有一个数组列在postgress表
  2. 我有一个值列表

想要跳过包含我的列表中任何值的所有行

Id   Subjects
1    [English, SST]
2    [Science, Maths]
3    [Hindi, Sanskrit]

想要选择主题不包含任何[英语,印地语,梵语]的行,因此输出应该只有id = 2

create table tt
("Id" int,"Subjects" text[]); 
insert into tt values
(1,    array['English', 'SST']),
(2,    array['Science', 'Maths']),
(3,    array['Hindi', 'Sanskrit']);

然后

select "Id" from tt 
where not "Subjects" && array['English', 'Hindi', 'Sanskrit'];

与数组操作符重叠(元素相同)。小提琴

比较应该是

NOT subjects && list

如果NULL数组(主题或列表)应该被视为未知,或者

subjects && list IS NOT TRUE

如果NULL数组应被视为空数组。

如果subject和list中的一个或两个都为NULL,则第一个选项返回NULL。

最新更新