アプリ版:「スタンプのみでお礼する」機能のリリースについて

sever2000使用時に検索がひっかからない(MSSQL)
ので、わかる方がいらっしゃいましたら、教えて
下さい。
初期値<NULL>がデーター内に入っていた場合、
その項目が一つでもあると、その検索は除外して
しまいます。それは、どうしてなのでしょうか?
検索(商品マスター.グループ)is not nullで除外できる
ように設定していますが、この検索条件を入力しな
くても、除外されます?
なぜでしょうか?

A 回答 (6件)

SQL文が書かれるのを待った方が良いのかと思いつつ...



>where (商品マスター.グループ) = '' or (商品マスター.グループ) is null and NOT ((商品マスター.グループ) IS NULL)

ですが、ちょっと整理すると
where
  (商品マスター.グループ) = ''
or 
  (商品マスター.グループ) is null
and
 NOT ((商品マスター.グループ) is null)

と書いてますね。
  (商品マスター.グループ) is null
and
 NOT ((商品マスター.グループ) is null)
この部分ですが、上の方は「値がNullなら」となっており、
下の方は「NOT 値がNullなら」(つまり、「値がNullで無ければ」となりますよね?
この2つについては相反する条件の関係となっており、それを「and」で判定しています。これでは絶対に条件が成り立ちませんね。ちょっと考えればわかる事だと思います

最初に立ち返って、
有る値Aに一致するデータを抽出したければ
where
  (商品マスター.グループ) = 値A
で抽出できます。値Aが空白('')を抽出する場合も同じです。ただ、ここで空白はNull値も含めて抽出したいということなら、「or」で繋げて
 or (商品マスター.グループ) is null
が必要になるでしょう

No.4さんも書かれてますが、SQL文をすべて提示されるべきかと私も思います
    • good
    • 0
この回答へのお礼

なんとか、解決しました。有難うございました。

お礼日時:2004/04/05 22:21

 結合ですか?OUTER JOINを使用して、検索条件から結合条件を除外しましょう。



 何にしても、説明が乏しすぎます。最低限、テーブル構成(各項目やテーブル名は架空名に変更する)が必要です。
    • good
    • 0
この回答へのお礼

なんとか、解決しました。有難うございました。

お礼日時:2004/04/05 22:22

試されているSQL文をselectから書いて下さい。


その方がみんなわかりやすいと思います。
    • good
    • 0
この回答へのお礼

なんとか、解決しました。有難うございました。

お礼日時:2004/04/05 22:21

もう一度、試されたSQL文を提示されてはいかがですか?


こう書いたときは○○○で、こうの時は△△△で、という様に具体的に。
最初の質問だけでは、さっぱり???です

この回答への補足

すみません。うまく説明ができなくて・・・
一応、皆さんの意見を参考にして、
where (商品マスター.グループ) = '' or (商品マスター.グループ) is null and NOT ((商品マスター.グループ) IS NULL)
と記述してみました。
ですが、この条件をいれていなくても、
(商品マスター.グループ)に<NULL>の値(初期値)
がはずされて検索結果にでてしまいます。
バージョン等の違いでしょうか?

補足日時:2004/02/23 20:35
    • good
    • 0

質問がよくわからないのですが、、、



検索項目が空白の場合で、NULLも空白値として検索対象としたい場合には、
select * from XXX where YYY = '' or YYY is null
という感じ
両方書くのが面倒なら、
where isnull(YYY, '') = ''
とも書けます。が、速度は遅くなります

この回答への補足

データ自体に空白というか、何もいれていない
状態なのです。server7.0からserver2000に移行
した際に、そのような表示になったようです。
やはり、何も記述、スペースなど入れていない
状態でも、その状態を検索条件からはずしたい場合は、
where isnull(YYY, '') = '' とした方が良いのでしょうか?

補足日時:2004/02/23 14:14
    • good
    • 0

is not nullではなくて、NOT (検索 IS NULL)


でやってみてください。

この回答への補足

NOT(商品マスター.グループ)is nullでしてみましたが、
この文を記述しなくても、除外されてしまいます。
データをserver7.0からserver2000に移行した時に、
何も記述してない項目は、<NULL>表示になった
ようです。
これは、バージョンの違いでしょうか?
また、上記の
 検索(商品マスター.グループ)is not nullと
(商品マスター.グループ)is not null
では、同じような結果になりました。
もし良かったら、教えて下さい。

補足日時:2004/02/23 14:11
    • good
    • 0

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

関連するカテゴリからQ&Aを探す