Hitachi

Hitachi Advanced Data Binder SQLリファレンス


8.14.1 COALESCE

指定した対象データを対象データ1対象データ2,…の順に評価し,ナル値でない最初の値を返します。

〈この項の構成〉

(1) 指定形式

スカラ関数COALESCE::=COALESCE(対象データ1〔,対象データ2〕…)
 
  対象データ1::=値式
  対象データ2::=値式

(2) 指定形式の説明

対象データ1対象データ2…:

対象データを指定します。

指定規則を次に示します。

  • 対象データは,値式の形式で指定します。値式については,「7.21 値式」を参照してください。

  • 対象データには,配列データを指定できません。

  • 対象データには,比較できるデータ型のデータを指定してください。比較できるデータ型については,「6.2.2 変換,代入,比較できるデータ型」の「(1) 比較できるデータ型」を参照してください。ただし,次のデータは比較できません。

    DATE型のデータと,日付を表す既定の入力表現の文字データ

    TIME型のデータと,時刻を表す既定の入力表現の文字データ

    TIMESTAMP型のデータと,時刻印を表す既定の入力表現の文字データ

  • 対象データ1には,?パラメタを単独で指定できません。

  • 対象データ2以降に?パラメタを指定した場合,対象データ1のデータ型が?パラメタのデータ型として仮定されます。

  • 対象データは255個まで指定できます。

(3) 規則

  1. 実行結果のデータ型とデータ長は,「7.21.2 値式の結果のデータ型」で説明している規則に従って決まります。

  2. 実行結果の値は,非ナル値制約なし(ナル値を許す)となります。

  3. すべての対象データがナル値の場合,実行結果はナル値になります。

  4. COALESCE(対象データ1,対象データ2)は,次のCASE式と同じになります。

    CASE
       WHEN 対象データ1 IS NOT NULL THEN 対象データ1
       ELSE 対象データ2
    END
  5. COALESCE(対象データ1,対象データ2,…,対象データn)は,次のCASE式と同じになります(nは3以上)。

    CASE
       WHEN 対象データ1 IS NOT NULL THEN 対象データ1
       ELSE COALESCE(対象データ2,…,対象データn)
    END

(4) 例題

例題

T1C1列〜C3列の値に対して,スカラ関数COALESCEを実行します。

SELECT COALESCE("C1","C2","C3") FROM "T1"

[図データ]