sql serverの条件分岐について教えてください。
前提条件としてデータベースにSTATEと言うテーブル
IDと言う属性があるとします。IDには数字の0か1しかありません。
自動更新しない設定です
データベースですから一度に多数の方が接続するかと思います。
1の時に0に変更、0の時に1に変更すると言ったSQL文はわかるのですが、
AさんBさんが同時にデータベース接続した際
Aさんが数字を1に変更しても自動更新しないのでBさんには0の表示のままです。
そこでBさんがこの時に1に変更した(実際の数字は1)際1に変更しましたと返したいです。
SQL文を分けて作るのではなく一つのSQL文ですっきりとさせたく以下のSQL文を考えましたがこのままでは1の時に0、0の時に1にする
ただ入れ替えるだけのSQLになってしまいます。
SQL
1UPDATE STATE 2SET ID = 3CASE 4 WHEN ID = 1 THEN ID = 0 5 ELSE ID = 0 THEN ID = 1;
1に入れ替える→IDが1の時1を返し0の時1を返す。
0に入れ替える→IDが0の時0を返し1の時0を返す。
と言ったSQL文を作りたいのですが上記のSQL文に何を加えれば私の要望どおり上手くいくのでしょうか。
ご教授をお願い致します。
SQLの問題集を解いていてふと疑問に思っただけの質問ですから特に使用しているSQL Serverのバージョン
などはありません。
SQL Serverがいいですが、元々はoracle のSQL文から学習を始めてましたのでSQL Severでは
使えないけどこんなやmysqlではこんなのがあるよと言った他のデータベースの事も教えて頂けるとありがたいです。
上記ではcase文で作成していますがcase文にこだわりがあり訳ではなくif文などで教えて頂いても結構です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/02 03:36