COALESCE スカラー関数
COALESCE 関数は、最初の非 NULL 式の値を戻します。
スキーマは SYSIBM です。
引数同士の間に互換性がなければなりません。 互換性に関する詳細については、 表1の互換性マトリックスを参照してください。 引数は、組み込みデータ・タイプまたはユーザー定義のデータ・タイプのどちらかにすることができます。
引数は指定された順序で評価され、 関数の結果は NULL 値以外の最初の引数になります。 すべての引数が NULL にすることができる引数の場合に限り、結果も NULL にできます。 すべての引数が NULL の場合に限り、結果は NULL となります。
選択された引数は、必要に応じて結果の属性に変換されます。 結果の属性は、 結果データ型のルールを使用して決定されます。 COALESCE 関数に 3 つ以上の引数がある場合は、最初の 2 つの引数に 規則を適用して、結果タイプの候補を決定します。 そのあと、この規則はその結果タイプの候補および 3 番目の引数にも 適用されて、他の結果タイプの候補を決定します。 このプロセスは、 すべての引数が分析されて、最終的な結果タイプが決定されるまで、続けられます。
文字ストリングまたはグラフィック・ストリングと数値の引数が混在している場合、ストリング値は暗黙的に DECFLOAT(34) 値にキャストされます。
COALESCE(e1,e2) を使用した結果は、以下の式を使用した場合と同じです。 CASE WHEN e1 IS NOT NULL THEN e1 ELSE e2 ENDVALUE は COALESCE のシノニムとして指定できます。
SELECT * FROM GRADES
WHERE COALESCE(SCORE1,0) + SCORE2 > 100; SELECT * FROM DSN8C10.EMP
WHERE COALESCE(HIREDATE,DATE('1959-12-31')) < '1960-01-01';述部は COALESCE(HIREDATE,'1959-12-31') とコーディングすることも
できます。比較の目的では、日付のストリング表現と日付を比較することが可能であるからです。
SELECT COALESCE(S1993.DEPTNO,S1994.DEPTNO) AS DEPT, S1993.SALES, S1994.SALES
FROM S1993 FULL JOIN S1994 ON S1993.DEPTNO = S1994.DEPTNO
ORDER BY DEPT;全外部結合により、売上の有無または両方の年に部門が存在 していたかどうかにかかわらず、結果にすべての部門を含めることができるようになります。 COALESCE 関数によって、2 つの結合列を 1 つ の列に結合することができます。そのようにすると、結果を順番 に並べることができます。
