如何找到后级数组的大小

有没有办法找到一个数组的大小?

例如,

CREATE TABLE example (id integer[]) ;


INSERT INTO example VALUES ( '{}');


INSERT INTO example VALUES ( '{5,6,7}');

从这里,有没有可能得到像下面这样的结果,

size


0


3
163828 次浏览

这是无关紧要的 阅读文件:

SELECT array_length(id, 1) FROM example;

正如维耶戈罗夫所说,array_length可以做到这一点。或者,如果您知道数组是一维的(这很有可能) ,并且正在运行 PostgreSQL 9.4或更高版本,您可以使用 cardinality:

SELECT cardinality(id) FROM example;

在 postgres 8.2中必须使用 array _ Upper。

假设数组的维数总是1,这让我感到不舒服,所以我采用了以下方法:

SELECT coalesce(array_length(id, 1), 0) as size FROM example;

已经... 至少有十年了,但是我们以前用 coalesce做了很多,非常方便。也许我伸手去拿是出于安慰?