Re: left join + case - how is it processed?

Поиск
Список
Период
Сортировка
От Richard Broersma
Тема Re: left join + case - how is it processed?
Дата
Msg-id 396486430901190851m2d4f3e73hbcb77a543d88044e@mail.gmail.com
обсуждение исходный текст
Ответ на left join + case - how is it processed?  (Chris <dmagick@gmail.com>)
Список pgsql-performance
On Sun, Jan 18, 2009 at 7:30 PM, Chris <dmagick@gmail.com> wrote:

> I have a view that looks like this:
>
>  SELECT
>        CASE
>            WHEN r.assetid IS NULL THEN p.assetid
>            ELSE r.assetid
>        END AS assetid,
>        CASE
>            WHEN r.userid IS NULL THEN p.userid
>            ELSE r.userid
>        END AS userid, p.permission, p."granted", p.cascades
>   FROM sq_ast_perm p
>   LEFT JOIN sq_vw_ast_role r ON r.roleid::text = p.userid::text AND
> r.assetid::text = p.assetid::text;

The effect that you are trying to achieve with CASE statements is
better suited to the COALESCE(...) function.
http://www.postgresql.org/docs/8.3/interactive/functions-conditional.html#AEN14484

--
Regards,
Richard Broersma Jr.

Visit the Los Angeles PostgreSQL Users Group (LAPUG)
http://pugs.postgresql.org/lapug

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: left join + case - how is it processed?
Следующее
От: Akos Gabriel
Дата:
Сообщение: test