case not sensitive to null condition ?

Started by Gauthier, Davealmost 13 years ago2 messagesgeneral
Jump to latest
#1Gauthier, Dave
dave.gauthier@intel.com

v9.0.1 on linux

thedb=# select
''''||bicolumn||'''',
coalesce(permitted_values,'is_null'),
case permitted_values when NULL then 'null' else ''''||permitted_values||'''' end
from bi_constraints limit 2;

?column? | coalesce | case
----------------+---------------+-----------------
'block' | is_null | <--- should be 'null' ??
'design_style' | rls,analog,fc | 'rls,analog,fc'
(2 rows)

Why didn't the case return 'null' in the statement above?

Thanks in Advance !

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Gauthier, Dave (#1)
Re: case not sensitive to null condition ?

"Gauthier, Dave" <dave.gauthier@intel.com> writes:

thedb=# select
''''||bicolumn||'''',
coalesce(permitted_values,'is_null'),
case permitted_values when NULL then 'null' else ''''||permitted_values||'''' end
from bi_constraints limit 2;

That's equivalent to "case when permitted_values = NULL then ..." which
doesn't work, because = never succeeds on nulls. You need to write
something like "case when permitted_values IS NULL then ...".

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general