CASE

CASE式を使用すると、EQLで条件分岐処理ができるので、問合せ時に意思決定ができるようになります。

CASE式の構文(SQL標準に従っている)は次のとおりです。
CASE
     WHEN <Boolean-expression> THEN <expression>
     [WHEN <Boolean-expression> THEN <expression>]*
     [ELSE expression]
END

CASE式には、1つ以上のWHEN式が含まれている必要があります。WHEN式のうち、条件がTRUEである最初のものが選択されます。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
この例では、レコードがRecentまたはOldに分類されます。
RETURN Result AS
SELECT
  CASE
    WHEN (Days < 7) THEN 'Recent'
    ELSE ‘Old’
  END AS Age
次に示す例では、すべてのレコードをクラスでグルーピングし、次の値を計算します。
RETURN CaseExample AS SELECT
      CASE
        WHEN Class = 'H' THEN MIN(DealerPrice)
        WHEN Class = 'M' THEN MIN(ListPrice)
        ELSE MIN(StandardCost)
      END
AS value
GROUP BY Class