Re: If table A value IS NULL then table B - Mailing list pgsql-general

From Marco Lazzeri
Subject Re: If table A value IS NULL then table B
Date
Msg-id 1074957543.2560.9.camel@macbeth.intranet.noze.it
Whole thread Raw
In response to If table A value IS NULL then table B  (Marco Lazzeri <marcomail@noze.it>)
Responses Re: If table A value IS NULL then table B
List pgsql-general
Il ven, 2004-01-23 alle 19:59, Ezra Epstein ha scritto:
> > I've got a table called 'main' described as follow
> >
> > CREATE TABLE main (
> >   id_other_table INT,
> >   value CHAR
> > );
> >
> > and a table called 'other' described as follow
> >
> > CREATE TABLE other (
> >   id INT PRIMARY KEY,
> >   value CHAR
> > );
> >
> > I want to write a query on table 'main' that if 'id_other_table' is null
> > returns value from itself, from table 'other' otherwise.
> >
> > Thank you very much, have a wonderful day!
> >
> > Marco
> >
>
> I think this post belongs on the SQL list, not the general list.
>
> Anyway, the SQL you want is:
>
>   =$> select COALESCE(other.value, main.value) AS "value" from main left
> outer join other ON main.id_other_table = other.id;
>
> For example, given:
>   insert into main (id_other_table, value) values (NULL, 'M');
>   insert into main (id_other_table, value) values (1, 'o');
>   insert into other (id, value) values (1, 'X');
> The query returns:
>  value
> -------
>  M
>  X
> (2 rows)

What if I would like to return more values from table 'other'?
Your cool query just return 'other.value', what if I also need
'other.value_two'?

Thank you!

Marco



pgsql-general by date:

Previous
From: Doug McNaught
Date:
Subject: Re: Touch row ?
Next
From: "Jim Wilson"
Date:
Subject: Powerbuilder and PostgreSQL information