Re: Select CASE when null ? - Mailing list pgsql-general

From Sam Mason
Subject Re: Select CASE when null ?
Date
Msg-id 20090115114646.GA3008@frubble.xen.chris-lamb.co.uk
Whole thread Raw
In response to Re: Select CASE when null ?  (Mark Styles <postgres@lambic.co.uk>)
List pgsql-general
On Wed, Jan 14, 2009 at 03:56:25PM -0500, Mark Styles wrote:
> SELECT COALESCE(mid,0) AS mid, COALESCE(id_group,0) AS id_group
> FROM users
> WHERE username = 'test'
> UNION
> SELECT 0, 0
> WHERE NOT EXISTS (SELECT 1 FROM users WHERE username = 'test');

An alternative using outer joins would be:

  SELECT COALESCE(mid,0) AS mid, COALESCE(id_group,0) AS id_group
  FROM (SELECT 1) x
    LEFT JOIN users ON username = 'test';

Unions tend to preclude various optimisations so I'd tend to stay away
from them where possible.  This query will also only perform only one
index scan of users, rather than two.

--

  Sam  http://samason.me.uk/

pgsql-general by date:

Previous
From: Sam Mason
Date:
Subject: Re: Query question
Next
From: "Merlin Moncure"
Date:
Subject: Re: Polymorphic "setof record" function?