如何在postgresql中查找数组的大小

时间:2012-06-25 11:45:24

标签: sql postgresql size

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

例如,

CREATE TABLE example (id integer[]) ;

INSERT INTO exam VALUES ( '{}');

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

由此可以获得如下结果,

size

0

3

4 个答案:

答案 0 :(得分:60)

这是微不足道的reading docs

SELECT array_length(id, 1) FROM example;

答案 1 :(得分:60)

正如vyegorov所说,array_length会做到这一点。或者,如果您知道该数组是1维(可能是)并且正在运行PostgreSQL 9.4或更高版本,则可以使用cardinality

SELECT cardinality(id) FROM example;

答案 2 :(得分:1)

在postgres 8.2中必须使用array_upper。

答案 3 :(得分:1)

假设数组的维数始终为1,这让我感到不舒服,所以我选择了以下方法:

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

已经过去了……至少十年了,但是我们曾经使用coalesce做过很多事情,而且非常方便。也许我是出于安慰而来的?