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

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

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

Re[4]: SQLについて


(過去ログ 126 を表示中)

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

■75000 / inTopicNo.1)  SQLについて
  
□投稿者/ 鏡月 (7回)-(2015/02/17(Tue) 15:15:44)

分類:[その他の言語] 

お世話になっております。
鏡月と言うものです。

SQLの書き方が分からなかったのでどなたかご教授下さい。

テーブルA

フィールド:NO test1 sample1 test2 sample2 test3 sample3 test4 sample4 test5 sample5
値    : 1  A NULL C 1 B 2 E NULL D 4
値    : 2  A 2 C NULL B 4 E 5 D NULL

テーブル1に上記のフィールドがあった場合、
No列が「2」でかつsampleX(Xは1〜5)のデータがNULLでは無い行の値を10に更新したいと思っております。

SQLを流したときの結果
フィールド:NO test1 sample1 test2 sample2 test3 sample3 test4 sample4 test5 sample5
値    : 1  A NULL C 1 B 2 E NULL D 4
値    : 2  A 10 C NULL B 10 E 5 D NULL

上記の場合、SQLはどのように書けばよろしいのでしょうか。
引用返信 編集キー/
■75001 / inTopicNo.2)  Re[1]: SQLについて
□投稿者/ 優希(ゆき) (54回)-(2015/02/17(Tue) 15:26:19)
No75000 (鏡月 さん) に返信
> お世話になっております。
> 鏡月と言うものです。
>
> SQLの書き方が分からなかったのでどなたかご教授下さい。
>
> テーブルA
>
> フィールド:NO test1 sample1 test2 sample2 test3 sample3 test4 sample4 test5 sample5
> 値    : 1  A NULL C 1 B 2 E NULL D 4
> 値    : 2  A 2 C NULL B 4 E 5 D NULL
>
> テーブル1に上記のフィールドがあった場合、
> No列が「2」でかつsampleX(Xは1〜5)のデータがNULLでは無い行の値を10に更新したいと思っております。
>
> SQLを流したときの結果
> フィールド:NO test1 sample1 test2 sample2 test3 sample3 test4 sample4 test5 sample5
> 値    : 1  A NULL C 1 B 2 E NULL D 4
> 値    : 2  A 10 C NULL B 10 E 5 D NULL
>
> 上記の場合、SQLはどのように書けばよろしいのでしょうか。

update文でwhereにNO="2"とsample1〜5を not nullの条件で指定すれば出来ます。

SQL文でデータを追加・更新・削除する方法
http://www.atmarkit.co.jp/ait/articles/0709/27/news143_2.html



引用返信 編集キー/
■75002 / inTopicNo.3)  Re[2]: SQLについて
□投稿者/ 鏡月 (8回)-(2015/02/17(Tue) 15:40:11)
No75001 (優希(ゆき) さん) に返信
優希(ゆき) さん回答ありがとうございます。

> update文でwhereにNO="2"とsample1〜5を not nullの条件で指定すれば出来ます。
>
> SQL文でデータを追加・更新・削除する方法
> http://www.atmarkit.co.jp/ait/articles/0709/27/news143_2.html

更新するフィールドが不確定な場合、SETの後にはどのように記載すればよろしいのでしょうか。

また、SQLは下記の記載でよろしいのでしょうか。
UPDATE テーブルA
SET ?
WHERE NO = 2
AND ( sample1 NOT NULL OR sample2 NOT NULL OR sample3 NOT NULL OR sample4 NOT NULL OR sample5 NOT NULL )
引用返信 編集キー/
■75003 / inTopicNo.4)  Re[3]: SQLについて
□投稿者/ 優希(ゆき) (55回)-(2015/02/17(Tue) 15:47:13)
No75002 (鏡月 さん) に返信
> ■No75001 (優希(ゆき) さん) に返信
> 優希(ゆき) さん回答ありがとうございます。
>
>>update文でwhereにNO="2"とsample1〜5を not nullの条件で指定すれば出来ます。
>>
>>SQL文でデータを追加・更新・削除する方法
>>http://www.atmarkit.co.jp/ait/articles/0709/27/news143_2.html
>
> 更新するフィールドが不確定な場合、SETの後にはどのように記載すればよろしいのでしょうか。
>
> また、SQLは下記の記載でよろしいのでしょうか。
> UPDATE テーブルA
> SET ?
> WHERE NO = 2
> AND ( sample1 NOT NULL OR sample2 NOT NULL OR sample3 NOT NULL OR sample4 NOT NULL OR sample5 NOT NULL )

ちょっと勘違いしてた。

NULLじゃないカラムのデータを更新したいってことだから。
やっぱり、カラムごとにSQL吐くしか無いと思う…

#間違ってたらすみません。


引用返信 編集キー/
■75004 / inTopicNo.5)  Re[3]: SQLについて
□投稿者/ PANG2 (62回)-(2015/02/17(Tue) 16:12:19)
No75002 (鏡月 さん) に返信
> 更新するフィールドが不確定な場合、SETの後にはどのように記載すればよろしいのでしょうか。

すべてのフィールドを記述する


SET
sample1 = (CASE WHEN sample1 IS NULL THEN NULL ELSE 10 END)
, sample2 = (CASE WHEN sample2 IS NULL THEN NULL ELSE 10 END)
引用返信 編集キー/
■75005 / inTopicNo.6)  Re[4]: SQLについて
□投稿者/ 鏡月 (9回)-(2015/02/17(Tue) 16:35:28)
No75004 (PANG2 さん) に返信
PANG2 さん回答ありがとうございます。
> SET
> sample1 = (CASE WHEN sample1 IS NULL THEN NULL ELSE 10 END)
> , sample2 = (CASE WHEN sample2 IS NULL THEN NULL ELSE 10 END)
UPDATE文でもCASE文を使うことが出来るんですね!!
初めて知りました。

ありがとうございます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -