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 по дате отправления: