有什么方法可以找到数组的大小吗?
例如,
CREATE TABLE example (id integer[]) ;
INSERT INTO example VALUES ( '{}');
INSERT INTO example VALUES ( '{5,6,7}');
由此,是否有可能得到如下结果,
size
---
0
3
正如 vyegorov 提到的,
array_length
就可以了。 或者,如果您知道该数组是一维的(这很可能)并且正在运行 PostgreSQL 9.4 或更高版本,则可以使用 cardinality
:
SELECT cardinality(id) FROM example;
这是微不足道的阅读文档:
SELECT array_length(id, 1) FROM example;
假设数组的维数始终为 1 我觉得不太舒服,所以我采用了以下方法:
SELECT coalesce(array_length(id, 1), 0) as size FROM example;
已经……至少十年了,但我们曾经用
coalesce
做了很多事情,而且非常方便。也许我是出于舒适才伸手去拿它?
必须在 postgres 8.2 中使用 array_upper。