如果PostgreSQL数组的所有元素均为NULL,是否有一个返回TRUE的表达式?
如果它是非NULL的值,我当然可以使用类似以下的内容:
SELECT 4 = ALL (ARRAY[4,5]::integer[]);
但是我想用IS NULL测试而不是= 4测试来进行ALL操作。我不认为这是一种ALL语法,并且NULL的语义与数组混合在一起,我自己却无法想到一种实现它的形式。因此,我问堆栈溢出。;-)
IS NULL
= 4
我知道我可以在pl / sql或pl / pgsql中编写一个执行此操作的函数,但是在使用该函数之前,我想先看看是否有直接表达式。
我认为我得到的答案最短,同时仍然保留4 = ALL (ARRAY[4,5]::integer[]);结构:
4 = ALL (ARRAY[4,5]::integer[]);
现场测试:https : //www.db-fiddle.com/f/6DuB1N4FdcvZdxKiHczu5y/1
select y, true = ALL (select unnest(z) is null) from x