有没有办法找到一个数组的大小?
例如,
CREATE TABLE example (id integer[]) ; INSERT INTO example VALUES ( '{}'); INSERT INTO example VALUES ( '{5,6,7}');
从这里,有没有可能得到像下面这样的结果,
size 0 3
这是无关紧要的 阅读文件:
SELECT array_length(id, 1) FROM example;
正如维耶戈罗夫所说,array_length可以做到这一点。或者,如果您知道数组是一维的(这很有可能) ,并且正在运行 PostgreSQL 9.4或更高版本,您可以使用 cardinality:
array_length
cardinality
SELECT cardinality(id) FROM example;
在 postgres 8.2中必须使用 array _ Upper。
假设数组的维数总是1,这让我感到不舒服,所以我采用了以下方法:
SELECT coalesce(array_length(id, 1), 0) as size FROM example;
已经... 至少有十年了,但是我们以前用 coalesce做了很多,非常方便。也许我伸手去拿是出于安慰?
coalesce