【发布时间】:2020-04-07 08:10:10
【问题描述】:
我正在尝试确定我的给定数组 _servicetype 是否包含 12、1、2、3 以外的元素。
以下是我目前所拥有的,
场景 1:如果我的数组是 {1,2,3,6015} 我想要 FALSE
场景 2:如果我的数组是 {1,2,12} 我想要 TRUE
场景 3:如果我的数组是 {1,2} 我想要 true
我最终在 Postgres 中将 iif 语句创建为用户定义的函数,并得到以下结果:
IIF(_servicetype@>ARRAY['12']::INT[]
OR _servicetype@>ARRAY['1'] ::INT[]
OR _servicetype@>ARRAY['2'] ::INT[]
OR _servicetype@>ARRAY['3'] ::INT[],TRUE,FALSE)::BOOLEAN
我担心它不适用于场景 1。
【问题讨论】:
-
您的数组可以包含 NULL 值吗? (然后标准数组运算符
@>、<@等都出来了。)您是否只使用整数数组?请记住始终披露正在使用的 Postgres 版本。SELECT version();
标签: arrays postgresql plpgsql