Re: array_to_string
От | Richard Huxton |
---|---|
Тема | Re: array_to_string |
Дата | |
Msg-id | 46093BFD.8060007@archonet.com обсуждение исходный текст |
Ответ на | Re: array_to_string (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-sql |
Tom Lane wrote: > Richard Huxton <dev@archonet.com> writes: >> Tom Lane wrote: >>> "Sabin Coanda" <sabin.coanda@deuromedia.ro> writes: >>>> I used the function array_to_string, and I found it ignores NULL values, >>>> e.g. array_to_string( 'ARRAY[1,NULL,3]', ',' ) returns '1,3'. >>> Do you have a better idea? > >> If you're being strict it should presumably return NULL for the whole >> string. Or you'd need a "coalesce-to-this" parameter. > > If the whole array is NULL it would return NULL, but that seems > unhelpful for a single element being NULL ... It's the least surprising choice though. You'd expect array_to_string() to be a loop doing something like: output = output || connector || arr[i] Of course this will produce NULL if any of the inputs are NULL. Now that might be unhelpful, but that's NULL for you. All you're doing is (presumably) adding a hidden test to the loop where Sabin seemed to expect COALESCE(arr[i],<something>). I'm not sure either is better across the board. The problem comes with what <something> should be. You're either looking at a third parameter or perhaps more cleanly you need a coalesce_array(ARRAY,VAL) function which produces an output array where all the null elemts are replaced by VAL. -- Richard Huxton Archonet Ltd
В списке pgsql-sql по дате отправления: