割と悩んだ・・・
原因は、CASE文で使用している項目のデータ型が異なるのが原因みたいだけど、正直、ぴんと来てない現実w
select case name when 'A' then 'あ' when 'B' then 1 end
自分の環境では、こんな感じのSQLで発生した。
最終的に
select case when name = 'A' then 'あ' when name = 'B' then '1' end
こうやって、比較条件1個ずつ書くことに・・・
CASE文って、同じ比較のときはcase〜で記述しておけば、when以下で書かなくても良かったはずなんだけどね・・・
参考にしたページ。
SELECT CASE文を使用した際のORA-00932について
http://rjge.hatenablog.com/entry/20130729/1375094451
上記のパターンだと、
select
case name
when ‘A’ then ‘あ’ //CHAR型
when ‘B’ then 1 //NUMBER型
end
が原因のため、単純に
select
case name
when ‘A’ then ‘あ’ //CHAR型
when ‘B’ then ‘1’ //CHAR型
end
にしてあげれば単純CASE式で書けると思いますよ。
>oracle beginnerさん
あー、確かに。
当時の試したこととかまでは詳細には覚えてないですが、その書き方は試してなかったと思います。
ありがとうございます。