|
■No85445 (たかやま さん) に返信
> select A,B,C,
> case Z
> when '1' then c1 when '2' then c2 when '3' then c3
> from table99
CASE 式は、最後が END で終わるものだと思っていたのですが…
どのデータベースをお使いなのでしょうか?
元の SQL を修正して、
select A,B,C,
c1, c2, c3, Z,
case Z
when '1' then c1 when '2' then c2 when '3' then c3
end as WK
from table99
とした場合、それぞれの列が何を返してくるのか、実際の値を教えてください。
> Zの値が1なら、c1の値がZの値になると思いますが、
> Zの値は1のままです(c1の値は、1ではありません)
Z と 1 を比較するのではなく、
Z と '1' を比較していたはずでは?
たとえば Z が NVARCHAR(5) で、そこに '1 ' という 3 文字が入っていたら、
'1' という 1 文字とは合致しませんね。空白のほか、改行・タブ文字・NULL文字などにも注意。
|