I want to update a column in myTable.  The value this column is set to depends 
on a
nested select statement which sometimes returns 0 rows instead of 1.  This is a
problem since the column I'm trying to update is set to refuse nulls.  Here's a
sample:

update myTable set myColumn = (Select altColumn from altTable where altColumn !=
'XXX' limit 1) where myColumn = 'XXX';

MyColumn cannot accept nulls, but sometimes "Select altColumn ..." returns 0 rows,
and thus, the query fails.


Is there a way to set a default value to be inserted into myColumn if and when
"select altColumn ..." returns zero rows?

COALESCE(value [, ...])

The COALESCE function returns the first of its arguments that is not null. Null is returned only if all arguments are null. This is often useful to substitute a default value for null values when data is retrieved for display, for example:

SELECT COALESCE(description, short_description, '(none)') ...

Like a CASE expression, COALESCE will not evaluate arguments that are not needed to determine the result; that is, arguments to the right of the first non-null argument are not evaluated.

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to