配列のサイズを見つける方法はありますか?
例えば、
CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam VALUES ( '{5,6,7}');
これから、次のような結果を得る可能性はありますか、
size
0
3
Vyegorovが述べたように、array_length
トリックを行います。または、配列が1次元(おそらく)であり、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;
少なくとも10年は経ちましたが、以前はcoalesce
で多くのことをしていましたが、かなり便利でした。たぶん私は快適さのために手を伸ばしているのでしょうか?
Postgres 8.2でarray_upperを使用する必要がありました。