SQL ステートメントの中で CASE 式を使うことによって、 表のデータの表現を簡単に操作できます。 それによって、 いくつかのプログラミング言語の CASE ステートメントと同じように、 強力な条件式の機能を実現できます。
SELECT DEPTNAME, CASE DEPTNUMB WHEN 10 THEN 'Marketing' WHEN 15 THEN 'Research' WHEN 20 THEN 'Development' WHEN 38 THEN 'Accounting' ELSE 'Sales' END AS FUNCTION FROM ORG
結果は、次のとおりです。
DEPTNAME FUNCTION -------------- ----------- Head Office Marketing New England Research Mid Atlantic Development South Atlantic Accounting Great Lakes Sales Plains Sales Pacific Sales Mountain Sales
SELECT LASTNAME, WORKDEPT FROM EMPLOYEE WHERE(CASE WHEN BONUS+COMM=0 THEN NULL ELSE SALARY/(BONUS+COMM) END ) > 10
次の例では、CASE 式を使うことによって、 すべての給与の総和に対する部署 20 の給与の和の比率を計算しています。
SELECT CAST(CAST (SUM(CASE WHEN DEPT = 20 THEN SALARY ELSE 0 END) AS DECIMAL(7,2))/ SUM(SALARY) AS DECIMAL (3,2)) FROM STAFF
結果は 0.11 になります。 CAST 関数を使うことによって、結果の精度が保たれるようにしています。
CASE WHEN X<0 THEN -1 WHEN X=0 THEN 0 WHEN X>0 THEN 1 END
この式の結果は、SYSFUN スキーマの中の SIGN ユーザー定義関数によるものと同じです。