On 6/24/19 4:46 PM, Alex Magnum wrote:
Yes, they are.

On Tue, Jun 25, 2019 at 4:33 AM Rob Sargent <robjsarg...@gmail.com <mailto:robjsarg...@gmail.com>> wrote:



    On Jun 24, 2019, at 2:31 PM, Alex Magnum <magnum11...@gmail.com
    <mailto:magnum11...@gmail.com>> wrote:

    Hi,
    I have two arrays which I need to combine based on the individual
    values;
    i could do a coalesce for each field but was wondering if there
    is an easier way

    array_a{a,  null,c,   d,null,f,null}  primary
    array_b{null,2  ,null,4,5   ,6,null}  secondary

    result {a,  2,   c,   d,5,   f,null)

    Any advice would be appreciated

    Are the inputs always of fixed dimensions eg. 1 by 7?

   create or replace function tt( a1 int[], a2 int[])
   returns int[] as $$
   declare
            aret int[];
            asize int;
   begin
         select array_length(a1,1) into asize;
         for i in 1..asize loop
              aret[i] = coalesce(a1[i], a2[i]);
         end loop;
         return aret;
   end;

   $$ language plpgsql;

   select * from tt(array[3,null], array[null,4]);
      tt
   -------
     {3,4}
   (1 row)



Reply via email to