Re: merge two rows where value are null

Поиск
Список
Период
Сортировка
От Ben Kim
Тема Re: merge two rows where value are null
Дата
Msg-id Pine.GSO.4.64.0708140820250.8353@coe.tamu.edu
обсуждение исходный текст
Ответ на merge two rows where value are null  (giuseppe.derossi@email.it)
Список pgsql-admin
On Tue, 14 Aug 2007, giuseppe.derossi@email.it wrote:

> Name, Surname , Job, Hobby, Pet, address
> John, Smith,   NULL, photo, NULL, NULL
> John, Smith,   student, NULL, cat, NULL

> by using name and surname as selecting key, I want :
>
> John, Smith,   student, photo, cat, NULL

If you are sure there's no conflict (multiple values) for a (name,
   surname) key, one simple solution might be (surely not an efficient one)

select
(select distinct Name from thetable where Name = 'name1' and Surname = 'surname1' where Name is not null),
(select distinct Surname from thetable where Name = 'name1' and Surname = 'surname1' where Surname is not null),
(select distinct Job from thetable where Name = 'name1' and Surname = 'surname1' where Job is not null),
(select distinct Hobby from thetable where Name = 'name1' and Surname = 'surname1' where Hobby is not null),
(select distinct Pet from thetable where Name = 'name1' and Surname = 'surname1' where Pet is not null),
(select distinct address from thetable where Name = 'name1' and Surname = 'surname1' where address is not null)

This will fail if you also have
John, Smith,   student, NULL, dog, NULL

in addition to
> John, Smith,   student, NULL, cat, NULL

You can test for offending rows by:

select
array_to_string( array( select distinct Pet from thetable where Name = 'name1' and Surname = 'surname1' where Pet is
notnull),',') 

and so on...


Regards,

Ben K.
Developer
http://benix.tamu.edu

В списке pgsql-admin по дате отправления:

Предыдущее
От: "Hyatt, Gordon"
Дата:
Сообщение: Re: plpgsql question/problem
Следующее
От: giuseppe.derossi@email.it
Дата:
Сообщение: Re: merge two rows where value are null