0

テーブルの行から値を取得して、それらを列ヘッダーに変換しようとしています。たとえば、私のテーブルは現在次のようになっています。

 _id   question_id   category
----- ------------- ----------
  1    767           back
  1    768           dev
  2    768           dev

そして、私はそれを次のようにしたいと思います:

 _id   767      768
----- -------- -----
  1    back     dev
  2    (null)   dev

ここで を使用して解決策を見つけましたCASE/WHENが、解決策を実装しようとするとエラーが発生します。私のコードは以下です。この場合、ORA-00923: FROM keyword not found where expected6 行目の最後でエラーが発生します。これを修正するにはどうすればよいですか?

SELECT
 msr._id,
 ans.question_id,
 ans.category,

 CASE ans.question_id WHEN '767' THEN ans.category END '767',
 CASE ans.question_id WHEN '768' THEN ans.category END '768'

FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1._id = t2._id

WHERE t2.question_id in (767,768) AND t2.assigned_to not in ('Smith, John')
 AND t1.request_type_id in (288,289) and t1.status_id not in (0, 11);
4

1 に答える 1

1

' は文字列リテラルの区切り文字です。" は列名です。したがって、次のようになります。

 CASE ans.question_id WHEN '767' THEN ans.category END "767",
 CASE ans.question_id WHEN '768' THEN ans.category END "768"
于 2015-08-20T13:19:35.710 に答える