• ベストアンサー

CASE文のエラーについて

下記のように打つと「行1でエラーが発生しました。: ORA-00905: キーワードがありません」というエラーが表示されます。どうすればいいでしょうか? SELECT ENAME AS 名前, SAL AS 給与, CASE SAL WHEN SAL <= 1100 THEN SAL * 1.055 WHEN SAL <=1400 THEN SAL * 1.05 WHEN SAL <=3000 THEN SAL * 1.0 ELSE SAL*1.045 AS 昇給率 FROM EMP;

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

2カ所誤りがあります。 1つ目 CASEに対するENDがない。(#1の指摘の通り) 2つ目 "CASE"キーワードの次に比較要素を書いていますが、 そぼ場合、"WHEN"キーワードの次に書くのは、比較式でなく 比較要素になります。 case ○ when △ then ▲ when □ then ■ else ◆ end と case when ○=△ then ▲ when ○=□ then ■ else ◆ end は、同じ意味のCASE式ですが、これをゴチャゴチャに使っているのが、 間違いです。 SELECT  ENAME AS 名前,  SAL AS 給与,  CASE WHEN SAL <= 1100 THEN SAL * 1.055     WHEN SAL <=1400 THEN SAL * 1.05     WHEN SAL <=3000 THEN SAL * 1.0     ELSE SAL*1.045  END AS 昇給率 FROM EMP; のように書くと問題なく使えるかと思います。

yukikundesuyo
質問者

お礼

分かりやすい回答ありがとうございます。 実行してみるとすんなり結果が出力しました。

その他の回答 (1)

回答No.1

昇給率 FROM  ↓ 昇給率 END FROM では、どうでしょうか?

yukikundesuyo
質問者

補足

回答ありがとうございます。 下記エラーが表示され実行できませんでした。 行1でエラーが発生しました。: ORA-00936: 式がありません。

関連するQ&A