<!--
-$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.295 2005/11/19 19:44:54 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.296 2005/11/28 23:18:48 momjian Exp $
PostgreSQL documentation
-->
<primary>COALESCE</primary>
</indexterm>
+ <indexterm>
+ <primary>NVL</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>IFNULL</primary>
+ </indexterm>
+
<synopsis>
<function>COALESCE</function>(<replaceable>value</replaceable> <optional>, ...</optional>)
</synopsis>
<para>
The <function>COALESCE</function> 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:
+ are null. It is often used to substitute a default value for
+ null values when data is retrieved for display, for example:
<programlisting>
SELECT COALESCE(description, short_description, '(none)') ...
</programlisting>
Like a <token>CASE</token> expression, <function>COALESCE</function> 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.
+ not evaluated. This SQL-standard function provides capabilities similar
+ to <function>NVL</> and <function>IFNULL</>, which are used in some other
+ database systems.
</para>
</sect2>
</synopsis>
<para>
- The <function>NULLIF</function> function returns a null value if and only
- if <replaceable>value1</replaceable> and
- <replaceable>value2</replaceable> are equal. Otherwise it returns
- <replaceable>value1</replaceable>. This can be used to perform the
- inverse operation of the <function>COALESCE</function> example
- given above:
+ The <function>NULLIF</function> function returns a null value if
+ <replaceable>value1</replaceable> and <replaceable>value2</replaceable>
+ are equal; otherwise it returns <replaceable>value1</replaceable>.
+ This can be used to perform the inverse operation of the
+ <function>COALESCE</function> example given above:
<programlisting>
SELECT NULLIF(value, '(none)') ...
</programlisting>
</para>
+ <para>
+ If <replaceable>value1</replaceable> is <literal>(none)</>, return a null,
+ otherwise return <replaceable>value1</replaceable>.
+ </para>
</sect2>