Counting elements of an array
Good morning all,
I would like to know how I can get the number of elements of an array.
regards,
Renaud THONNART
Christopher Sawtell wrote:
On Thu, 01 Mar 2001 21:53, you wrote:
Good morning all,
I would like to know how I can get the number of elements of an array.
create function array_element_count(_int4) returns integer as '
declare
a alias for $1;
i integer;
begin
i := 1;
while a[i] loop
i := i+1;
end loop;
return i-1;
end;' language 'plpgsql' with(isstrict,iscachable);
Thanks a lot
Regards, Renaud THONNART
Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes:
I would like to know how I can get the number of elements of an array.
There is a function that returns an array's dimensions as a text string:
regression=# select array_dims( '{1,2,3}'::int[] );
array_dims
------------
[1:3]
(1 row)
regression=# select array_dims( '{{1,2,3},{4,5,6}}'::int[] );
array_dims
------------
[1:2][1:3]
(1 row)
regards, tom lane
Tom Lane wrote:
Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes:
I would like to know how I can get the number of elements of an array.
There is a function that returns an array's dimensions as a text string:
regression=# select array_dims( '{1,2,3}'::int[] );
array_dims
------------
[1:3]
(1 row)regression=# select array_dims( '{{1,2,3},{4,5,6}}'::int[] );
array_dims
------------
[1:2][1:3]
(1 row)regards, tom lane
Thanks very much Tom, you have helped me a lot.
Renaud THONNART
Tom Lane wrote:
Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes:
I would like to know how I can get the number of elements of an array.
There is a function that returns an array's dimensions as a text string:
regression=# select array_dims( '{1,2,3}'::int[] );
array_dims
------------
[1:3]
(1 row)regression=# select array_dims( '{{1,2,3},{4,5,6}}'::int[] );
array_dims
------------
[1:2][1:3]
(1 row)regards, tom lane
Ok Tom, but if I have a table (for example aaa) that contains an array (for
example vector)
The function that you have spoken to me doesn't work:
select array_dims(vector) from aaa;
or
select array_dims(vector :: int[]) from aaa;
The result is :
array_dims
------------
(3 row)
There isn't any parse error but it don't work.
Do I have badly understand what you have explain me?
Thank you,
Renaud THONNART
Sorry!!
It works very well!
Renaud THONNART
Show quoted text
Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes:
I would like to know how I can get the number of elements of an array.
There is a function that returns an array's dimensions as a text string:
regression=# select array_dims( '{1,2,3}'::int[] );
array_dims
------------
[1:3]
(1 row)regression=# select array_dims( '{{1,2,3},{4,5,6}}'::int[] );
array_dims
------------
[1:2][1:3]
(1 row)regards, tom lane