dポイントプレゼントキャンペーン実施中!

単一レコード内において、
Bの値を条件により決定したいのですが可能でしょうか。

<構成>
テーブル:hoge
カラム:A,B

<条件>
Aにデータがあれば、Bは"●"
Aにデータがなければ、Bは"×"


よろしくお願いいたします。

A 回答 (3件)

Bがカラムとして存在しなければいけない理由は何でしょう?


selectするときにifでデータを作るとか、viewでBカラムに相当するデータを動的に生成するとかではダメなのでしょうか。
    • good
    • 0
この回答へのお礼

回答にあるとおりif文で、制御を掛けことになりました。

上司に、指示を受けたのですが、
上司の「やりたいこと」はできないようです。

ご回答ありがとうございました。

お礼日時:2014/06/20 22:15

>AはNULLを許容していません。


>空文字("")がデータが無い状態となります。

であればこんな感じ?

UPDATE hoge SET B=IF(A='','×','●');

なお、Aが変更されるたびにBの値を書き変えないと整合性がとれないため
運用時にトリガーなどで調整する必要があるかもしれません。

この回答への補足

>UPDATE hoge SET B=IF(A='','×','●');
アップデート文を使わず、自動で変更はできないでしょうか?

例えば、
INSERT INTO hoge (A) VALUES('aaa');
とした場合

A:'aaa'
B:'●'

が入っている状態にしたいです。

すみませんが、よろしくお願いします。

補足日時:2014/06/04 16:06
    • good
    • 0

カラムAの型と、NULLを許諾するかどうかによります。


そもそも「データがあれば」というのはどういう状態を前提にしていますか?

Aが数値型でNULLを許諾してなければ、データがないということはありえません。
またAが文字列型でNULLを許諾していない場合''であるものをデータがないと
解釈すべきかどうか判断がわかれます

逆にNULLを許諾していてNULLをもってデータがないという認識であれば
is nullでチェックができますが、SQLにとってNULLは弊害が多いため
あまりお勧めできない状態になるかもしれません。

この回答への補足

>そもそも「データがあれば」というのはどういう状態を前提にしていますか?
AはNULLを許容していません。
空文字("")がデータが無い状態となります。

すみませんが、よろしくお願いします。

補足日時:2014/06/04 15:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!