1

このステートメントをOracle10gで実行しています。

     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:式がありません

誰かが私が欠けているものを手伝ってくれる?

4

2 に答える 2

2

SQL ステートメントでは、CASEステートメントは次のようにする必要があります。

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

このCASE variable WHEN構文は PL/SQL では有効ですが、SQL では有効ではありません。

于 2012-02-21T02:25:15.763 に答える
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

オラクルは、先行する変数のない BETWEEN 関数を好まないと思います。

于 2012-02-21T02:25:57.667 に答える