1

この一連のcaseステートメントの何が問題になっているのかわかりません。オンラインで調べたところ、構文は正しいようですが、キーワードが見つからないというエラーが発生します。どんな助けでも大歓迎です!

CASE 
when A = '1' then
         when sequence_number = 5 then 9
         when sequence_number = 6 then 9
         end
 when A = '2' then
       when sequence_number = 5 then 9
       when sequence_number = 6 then 9
       end
  when A = '3' then
        when sequence_number =7 then 9
        when sequence_number =8 then 9
        end
else T.number
end as number 
4

3 に答える 3

2

最も簡単なオプションは次のように思われます。

 case 
   when (A in (1,2) and sequence_number in (5,6)) or
        (A in (3  ) and sequence_number in (7,8))
   then 9
   else t.number
 end
于 2013-03-12T22:56:11.723 に答える
2

CASE各ブランチ内に2番目のステートメントが必要になるか、条件を組み合わせる必要があります

CASE 
when A = '1' and sequence_number = 5 then 9
when A = '1' and sequence_number = 6 then 9
when A = '2' and sequence_number = 5 then 9
...
else T.number
end as number 

また

CASE 
when A = '1' then
         case when sequence_number = 5 then 9
              when sequence_number = 6 then 9
         end
when A = '2' then
       case when sequence_number = 5 then 9
            when sequence_number = 6 then 9
       end
when A = '3' then
        case when sequence_number =7 then 9
             when sequence_number =8 then 9
        end
else T.number
end as number 
于 2013-03-12T20:40:29.220 に答える
0

@mikebは正しいです-追加のCASEが必要です。

Numberこれをテストしている間、私もカラムに問題がありました。推測しているだけですが、オラクルは予約語としてそれを窒息させているのでしょうか?私のように、例外が発生した場合は、またはORA-01747: invalid user.table.column, table.column, or column specificationのようなものに変更してください。NumTheNumber

更新されたケースは次のとおりです。

CASE
when A = '1' then
       case
       when sequence_number = 5 then 9
       when sequence_number = 6 then 9
       end
when A = '2' then
       case
       when sequence_number = 5 then 9
       when sequence_number = 6 then 9
       end
when A = '3' then
       case
       when sequence_number =7 then 9
       when sequence_number =8 then 9
       end
else T.number
end as number
于 2013-03-12T20:42:25.117 に答える