Discussion:
[ADMIN] case statement to cath nulls on joined tables
(too old to reply)
John Morgan
2012-02-03 12:45:37 UTC
Permalink
Hello,

I am doing a left outer join between a polygon table and a data table.
Everything
returns fine from this join as expected. However, there are cases where
there isn?t data for a given polygon and this return as the expected null
in the result set. I would like to utilize something like a case statement
to catch the nulls and return a ?more friendly? message. I have tried
unsuccessfully to use the following logic:

*Select case value_of_interest null then ?more friendly message? else
value_of_interest end*

*From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id*

If someone could let me know where I am going wrong it would be greatly
appreciated.

Cheers,

Derek
Matheus de Oliveira
2012-02-03 15:05:39 UTC
Permalink
Try that:

SELECT address, CASE WHEN value_of_interest IS NULL THEN 'more friendly
message' ELSE value_of_interest END value_of_interest
From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id


--
Matheus de Oliveira
Post by John Morgan
Hello,
I am doing a left outer join between a polygon table and a data table.
Everything
returns fine from this join as expected. However, there are cases where
there isn?t data for a given polygon and this return as the expected null
in the result set. I would like to utilize something like a case statement
to catch the nulls and return a ?more friendly? message. I have tried
*Select case value_of_interest null then ?more friendly message? else
value_of_interest end*
*From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id*
If someone could let me know where I am going wrong it would be greatly
appreciated.
Cheers,
Derek
Matheus de Oliveira
2012-02-03 15:09:21 UTC
Permalink
Even better:

SELECT COALESCE(value_of_interest, 'more friendly message')
value_of_interest
From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id

--
Matheus de Oliveira




On Fri, Feb 3, 2012 at 1:05 PM, Matheus de Oliveira <
Post by Matheus de Oliveira
SELECT address, CASE WHEN value_of_interest IS NULL THEN 'more friendly
message' ELSE value_of_interest END value_of_interest
From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id
--
Matheus de Oliveira
Post by John Morgan
Hello,
I am doing a left outer join between a polygon table and a data table.
Everything
returns fine from this join as expected. However, there are cases where
there isn?t data for a given polygon and this return as the expected null
in the result set. I would like to utilize something like a case statement
to catch the nulls and return a ?more friendly? message. I have tried
*Select case value_of_interest null then ?more friendly message? else
value_of_interest end*
*From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id*
If someone could let me know where I am going wrong it would be greatly
appreciated.
Cheers,
Derek
jdmorgan
2012-02-03 18:34:53 UTC
Permalink
Thanks Matheus. The coalesce method worked like a champ.

Cheers,
Derek
Post by Matheus de Oliveira
SELECT COALESCE(value_of_interest, 'more friendly message')
value_of_interest
From poly_table left outer join data_table one poly_table.common_id =
data_table.common_id
--
Matheus de Oliveira
On Fri, Feb 3, 2012 at 1:05 PM, Matheus de Oliveira
SELECT address, CASE WHEN value_of_interest IS NULL THEN 'more
friendly message' ELSE value_of_interest END value_of_interest
From poly_table left outer join data_table one
poly_table.common_id = data_table.common_id
--
Matheus de Oliveira
Hello,
I am doing a left outer join between a polygon table and a data table.
Everything
returns fine from this join as expected. However, there are cases where
there isn?t data for a given polygon and this return as the expected null
in the result set. I would like to utilize something like a case statement
to catch the nulls and return a ?more friendly? message. I have tried
*Select case value_of_interest null then ?more friendly message? else
value_of_interest end*
*From poly_table left outer join data_table one
poly_table.common_id =
data_table.common_id*
If someone could let me know where I am going wrong it would be greatly
appreciated.
Cheers,
Derek
--
Derek @ NEMAC
Loading...