• ベストアンサー

データベースのクエリについて教えてください。

データベースのクエリについて教えてください。 電話番号カラムと携帯電話番号カラムが定義してあります。 どちらかのカラムにはデータが入っていて、その片方のカラムは空となっている場合、 電話番号か携帯電話番号の、どちらか空ではないデータのみを取り出したいのですが、 どのようなクエリにしたらよいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.3

これがSQL Serverの質問で、要は「有効なデータを取出したい」という意味でしたら、以下のようにやればよいでしょう。 SELECT ISNULL(NULLIF(電話番号,''),NULLIF(携帯電話番号,''))

ok_desu
質問者

お礼

先日、お教えいただいた方法を試しまして、この方法が自分にバッチリでした。 ありがとうございました。

その他の回答 (3)

  • dda167
  • ベストアンサー率76% (55/72)
回答No.4

SQL ServerでもCOALESCE関数が使えるのではないですか? COALESCE(電話番号, 携帯電話番号)

  • root_16
  • ベストアンサー率32% (674/2096)
回答No.2

no.1です。 抜けてましたが、最後は抽出したデータを使って 電話番号と携帯電話番号の文字列を CONCAT関数で結合して下さい。

  • root_16
  • ベストアンサー率32% (674/2096)
回答No.1

もっとうまいやり方があるかもしれませんが、 すぐ思いつくのは 電話番号が空かどうか判定するカラムF1(空のとき0、そうでないとき1) 携帯電話番号が空かどうか判定するカラムF2(空のとき0、そうでないとき1) 判定用カラムF3 (F1×10+F2) F3の組み合わせは 00:どちらも無い 01:携帯電話番号だけ有る 10:電話番号だけ有る 11:どちらも有る になるので、F3=01(実際は1)と10の場合を抽出すれば いいような気がします。