プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

CASE

CASE式を使用すると、EQLで条件付き処理が可能になり、問合せ時にディシジョンを行うことができます。

SQL標準に準拠するCASE式の構文は、次のとおりです:
CASE
     WHEN <Boolean-expression> THEN <expression>
     [WHEN <Boolean-expression> THEN <expression>]*
     [ELSE expression]
END

CASE式には、少なくとも1つのWHEN式を含める必要があります。 TRUE条件が指定された最初のWHEN式が、選択されている式です。 NULLTRUEではありません。 オプションのELSE句が表示される場合、それはCASE文の最後に配置され、WHEN TRUE THENと同等である必要があります。 条件が一致しない場合、THEN式のデータ型に応じて、結果はNULLまたは空のセットになります。

この例では、正の整数での除算は回避されます:
CASE
     WHEN y < 0 THEN x / (0 - y)
     WHEN y > 0 THEN x / y
     ELSE 0
END
この例では、レコードは最近と旧に分類されます:
RETURN Result AS
SELECT
  CASE
    WHEN (Days < 7) THEN 'Recent'
    ELSE ‘Old’
  END AS Age
...
次の例では、すべてのレコードをクラス別にグループ化して、次の項目を計算します:
  • クラスHのすべてのレコードの最小DealerPrice。
  • クラスMのすべてのレコードの最小ListPrice。
  • その他すべてのレコードの最小StandardCost (クラスlと呼ばれる)。
RETURN CaseExample AS 
SELECT
   CASE
     WHEN Class = 'H' THEN MIN(DealerPrice)
     WHEN Class = 'M' THEN MIN(ListPrice)
     ELSE MIN(StandardCost)
   END
AS value
FROM SaleState
GROUP BY Class