0

'%_PROG'開発者 ( ) またはマネージャー ( )として働く従業員を表示するクエリをコーディングしようとしています'%_MAN'。の 2 行目を除いて、私のクエリは問題ありませんCASE WHEN THEN。エラーメッセージが表示されます:

ORA-00923 FROM キーワードが予期された場所に見つかりませんでした

したがって、問題は次の 2 行目にあるはずです。

(CASE WHEN JOB_ID LIKE '%_PROG' THEN "Developer" ELSE "Manager" END) JOB_ID

クエリ全体は次のとおりです。

SELECT 'Employee# ' || EMPLOYEE_ID 
       || ' named ' || FIRST_NAME
       || ' ' || LAST_NAME || ' who is ' 
       || CASE WHEN JOB_ID LIKE '%_PROG' THEN "Developer" ELSE "Manager" END 
       || ' will have a new salary of $'
       || ROUND((SALARY  +((SALARY/100)*25)),-2) AS "Employees with higher salary"
  FROM EMPLOYEES 
 WHERE JOB_ID LIKE '%_PROG' OR JOB_ID LIKE '%_MAN'
   AND (SALARY >= 3000 AND SALARY <= 5000)
 ORDER BY EMPLOYEE_ID;

出力は次のようになります。

 Employee# 103 named Anna Clark who is Developer will have a new salary of  $006,100

私は何を間違っていますか?

4

2 に答える 2

0

列という意味なら「開発者」と「マネージャー」でOKです。文字列を意味する場合は、一重引用符で囲みます。

列を作成するのではなく、CASE 式を他の式と連結するため、JOB_ID最初は列エイリアスとして意図されていた をその後にドロップします。(私が今見たように、あなたはそれを編集しました)

于 2016-02-23T18:33:19.040 に答える
0

ステートメントで一重引用符を使用してみてください。 (CASE WHEN JOB_ID LIKE '%_PROG' THEN 'Developer' ELSE 'Manager' END) JOB_ID

于 2016-02-23T18:33:37.380 に答える