gvim <gvimrc(at)gmail(dot)com> writes:
> I'm struggling to find anything other than a complex stored proc to do this:
> Out of a group of 20 columns return the rows in which:
> 1. Only 1 of the 20 columns IS NOT NULL
> 2. More than 1 of the 20 columns IS NOT NULL
> Any ideas?
Cast to int and add up?
SELECT ... WHERE
((col1 is not null)::int +
(col2 is not null)::int + ...
(col20 is not null)::int) = 1 -- or > 1
regards, tom lane