C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SQLで値が変わらない

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■85445 / inTopicNo.1)  SQLで値が変わらない
  
□投稿者/ たかやま (1回)-(2017/10/20(Fri) 23:29:05)

分類:[データベース全般] 

SQLで、値が変わらない

select A,B,C,
case Z
when '1' then c1 when '2' then c2 when '3' then c3
from table99

Zの値が1なら、c1の値がZの値になると思いますが、
Zの値は1のままです(c1の値は、1ではありません)

Zの値が2や3でもc2や、c3の値がZの値になりません


構文上、間違ってはいないように思いますが、
ご教示ください
引用返信 編集キー/
■85446 / inTopicNo.2)  Re[1]: SQLで値が変わらない
□投稿者/ 魔界の仮面弁士 (1435回)-(2017/10/20(Fri) 23:50:31)
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文字などにも注意。

引用返信 編集キー/
■85447 / inTopicNo.3)  Re[2]: SQLで値が変わらない
□投稿者/ たかやま (2回)-(2017/10/21(Sat) 11:09:48)
魔界の仮面弁士様

私の勘違いでした

失礼しました

引用返信 編集キー/
■85448 / inTopicNo.4)  Re[3]: SQLで値が変わらない
□投稿者/ たかやま (3回)-(2017/10/21(Sat) 11:11:01)
解決済みなので、解決済みボタンをクリックします
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ