2012-02-21 24 views
1

Oracle 10gでこの文を実行しています。Oracle 10g:選択文内のCASE(ORA-00936エラー)

 select CASE Math WHEN BETWEEN 90 AND 100 THEN 'A' 
         WHEN BETWEEN 80 AND 90 THEN 'B' 
         WHEN BETWEEN 0 AND 80 THEN 'C' 
         ELSE 'Invalid score' END 
     from score 

しかし、私は次のエラー

ORA-00936を取得しています:行方不明の式

誰かが私が行方不明です何に役立つことはできますか? SQL文で

答えて

2

CASE文はCASE variable WHEN構文はSQLでのPL/SQLではなく有効です

SELECT CASE WHEN math BETWEEN 90 AND 100 
      THEN 'A' 
      WHEN math BETWEEN 80 AND 90 
      THEN 'B' 
      WHEN math BETWEEN 0 AND 80 
      THEN 'C' 
      ELSE 'Invalid Score' 
     END 
    FROM score 

ようなものにする必要があります。

+0

ありがとう、ジャスティン。出来た! – somnathchakrabarti

1

代わりに、私はこれを行うだろう条件を使用する:

select CASE WHEN math BETWEEN 90 AND 100 THEN 'A' 
         WHEN math BETWEEN 80 AND 90 THEN 'B' 
         WHEN math BETWEEN 0 AND 80 THEN 'C' 
         ELSE 'Invalid score' END 
     from score 

私はOracleは、先行する変数なしBETWEEN機能を好きとは思いません。

+0

いいえ、それはジャスティンが言及したように間を取った。ありがとうnorthpole! – somnathchakrabarti

+0

うん、ジャスティンのように見え、私は同じ解決策を持っている。乾杯! – northpole

+0

はい、そうです。ありがとう! – somnathchakrabarti