スカラー関数

スカラー関数は、式を使用できる個所であればどこにでも使用することができます。 スカラー関数は値のセットではなくパラメーター値の単一セットに対して適用されるため、集約関数の使用に対する制限はスカラー関数には適用されません。 スカラー関数の引数には、関数を指定できます。 ただし、式と集約関数の使用に適用される制約事項は、 スカラー関数の中で式または集約関数を使用する場合にも適用されます。 例えば、スカラー関数の引数は、そのスカラー関数が使用されるコンテキストにおいて集約関数が使用できる場合のみ集約関数にすることができます。

スカラー関数の引数がフィールド・プロシージャーをもつ 列に入っていたストリングである場合、関数はデコード形式の 値に適用され、関数の結果はフィールド・プロシージャーを継承 しません。

例: 以下のSELECT文は、サンプルテーブル DSN8D10.EMP の D11 部門の各従業員の従業員番号、姓、年齢を呼び出します。 年齢を求めるには、スカラー関数 YEAR を次の式に適用します。
   CURRENT DATE - BIRTHDATE
DSN8D10.EMP の各行において、該当する従業員が所属する部門が D11:
   SELECT EMPNO, LASTNAME, YEAR(CURRENT DATE - BIRTHDATE)
     FROM DSN8D10.EMP
     WHERE WORKDEPT = 'D11';