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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.85445 の関連記事表示

<< 0 >>
■85445  SQLで値が変わらない
□投稿者/ たかやま -(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の値になりません


    構文上、間違ってはいないように思いますが、
    ご教示ください
親記事 /過去ログ146より / 関連記事表示
削除チェック/

■85446  Re[1]: SQLで値が変わらない
□投稿者/ 魔界の仮面弁士 -(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文字などにも注意。
記事No.85445 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85447  Re[2]: SQLで値が変わらない
□投稿者/ たかやま -(2017/10/21(Sat) 11:09:48)
    魔界の仮面弁士様

    私の勘違いでした

    失礼しました
記事No.85445 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85448  Re[3]: SQLで値が変わらない
□投稿者/ たかやま -(2017/10/21(Sat) 11:11:01)
    解決済みなので、解決済みボタンをクリックします
記事No.85445 のレス / END /過去ログ146より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -