我正在尝试确定给定的数组 IIF(_servicetype@>ARRAY['12']::INT[]
OR _servicetype@>ARRAY['1'] ::INT[]
OR _servicetype@>ARRAY['2'] ::INT[]
OR _servicetype@>ARRAY['3'] ::INT[],TRUE,FALSE)::BOOLEAN
是否包含12,1,2,3以外的元素。
以下是我到目前为止的内容,
方案1:如果我的数组是{1,2,3,6015},我想为假
方案2:如果我的数组是{1,2,12},我想为真
方案3:如果我的数组为{1,2},我想为真
我最终在Postgres中将iif语句创建为用户定义的函数,并得到以下内容:
first
我担心的是,它不适用于方案1。
答案 0 :(得分:3)
您可以使用ARRAY[12, 1, 2, 3]
(包含/覆盖)运算符检查_servicetype
是@>
的超集,即_supertype
是否包含{{1}中的任何内容}返回ARRAY[12, 1, 2, 3]
:
false