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

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

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

Re[1]: SQLServer2005のUPDATE文について


(過去ログ 63 を表示中)

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

■36209 / inTopicNo.1)  SQLServer2005のUPDATE文について
  
□投稿者/ おいしいお茶 (1回)-(2009/05/25(Mon) 10:38:57)

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

2009/05/25(Mon) 11:20:24 編集(投稿者)
2009/05/25(Mon) 10:49:15 編集(投稿者)

<pre><pre>Testテーブルにacol、bcolフィールドがあり
更新時にAフィールドが空、DBNullのとき
Aフィールドに更新値をいれる。
Aフィールドが空、DBNullでないときには
Aフィールドの値をBフィールドに書き込み、
Aフィールドに更新値を入れる。
というようなSQL文を作りたいのですが、思うような結果が出ません。

UPDATE Test
SET acol = 'value1',
bcol = CASE WHEN NOT(acol = '' OR acol IS NULL)
THEN bcol = acol
ELSE bcol = '' END;

上記が作成したSQL文です。
acolが空でなく、NULLでない時bcolにacolの値が入ってきません。
どこが悪いのご教示お願い致します。
</pre></pre>
引用返信 編集キー/
■36214 / inTopicNo.2)  Re[1]: SQLServer2005のUPDATE文について
□投稿者/ おいしいお茶 (3回)-(2009/05/25(Mon) 11:23:25)
No36209 (おいしいお茶 さん) に返信
> 2009/05/25(Mon) 11:20:24 編集(投稿者)
> 2009/05/25(Mon) 10:49:15 編集(投稿者)
>
> <pre><pre>Testテーブルにacol、bcolフィールドがあり
> 更新時にAフィールドが空、DBNullのとき
> Aフィールドに更新値をいれる。
> Aフィールドが空、DBNullでないときには
> Aフィールドの値をBフィールドに書き込み、
> Aフィールドに更新値を入れる。
> というようなSQL文を作りたいのですが、思うような結果が出ません。
>
> UPDATE Test
> SET acol = 'value1',
> bcol = CASE WHEN NOT(acol = '' OR acol IS NULL)
> THEN bcol = acol
> ELSE bcol = '' END;
>
> 上記が作成したSQL文です。
> acolが空でなく、NULLでない時bcolにacolの値が入ってきません。
> どこが悪いのご教示お願い致します。
> </pre></pre>

すみません。自己解決しました。
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -