< 手順1 >
次のテーブルを用意する。
CREATE TABLE TMP_TBL (
CLM1 NUMBER
, CLM2 NUMBER
) ;
< 手順2 >
次のレコードをINSERTする。
INSERT INTO TMP_TBL VALUES( 1, 1 );
INSERT INTO TMP_TBL VALUES( 2, 1 );
INSERT INTO TMP_TBL VALUES( 3, 1 );
INSERT INTO TMP_TBL VALUES( 1, 2 );
INSERT INTO TMP_TBL VALUES( 4, 1 );
COMMIT ;
< 手順3 >
次のSELECT文を実行し、SELECTされる結果と統計情報を確認する。
SELECT
DECODE(CLM1,1,10,2,20,3,30,100) A
FROM
TMP_TBL
WHERE
CLM2 = 1;
< 手順4 >
次のSELECT文を実行し、SELECTされる結果と統計情報を確認する。
SELECT
CASE WHEN CLM1 = 1 THEN
10
ELSE
CASE WHEN CLM1 = 2 THEN
20
ELSE
CASE WHEN CLM1 = 3 THEN
30
ELSE
100
END
END
END A
FROM
TMP_TBL
WHERE
CLM2 = 1;
■ 調査結果
処理の実行結果は以下のようになりました。
< 手順3 結果 >
SQL> SELECT
DECODE(CLM1,1,10,2,20,3,30,100) A
FROM
TMP_TBL
WHERE
CLM2 = 1;
A
----------
10
20
30
100
4行が選択されました。
SQL>
SQL> SELECT
CASE WHEN CLM1 = 1 THEN
10
ELSE
CASE WHEN CLM1 = 2 THEN
20
ELSE
CASE WHEN CLM1 = 3 THEN
30
ELSE
100
END
END
END A
FROM
TMP_TBL
WHERE
CLM2 = 1;
A
----------
10
20
30
100
4行が選択されました。
SQL>