有没有办法找到数组的大小?
例如,
CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam VALUES ( '{5,6,7}');
由此,是否有可能得到如下结果,
size
0
3
有没有办法找到数组的大小?
例如,
CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam 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。