2016-10-11 18 views
0

問題のタイトルが正しいかどうかわかりません。私は問題を説明します。状態に基づくPostgreSQLの結果

私は、SQLクエリを持っている:

SELECT * FROM table WHERE condidtion_1 or condition_2; 

テーブルはcondition_1またはcondition_2を一致させることができる要素を持っています。

  1. は要素がcondition_1と一致するならば、我々は唯一の要素ことを返すとcondition_1と一致していないならば、我々は一致するだけで、その要素を返すcondition_2
  2. に一致する要素をチェックしません:それはそれを何らかの方法で可能ですcondition_2

  3. condition_1condition_2と一致していないならば、何も(通常の方法)

0123を返しません。

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

EDIT

ゴードンの答えはそのような何かをテストするために私にインスピレーションを与え、それは[OK]を働いているように見えますが、おそらくいくつかの他のより明確な解決策?

SELECT * FROM table WHERE (condition_1 AND NOT condition_2) OR (NOT condition_1 AND condition_2); 
+0

条件の結果を比較してください。なぜこれは通常のORと違うのですか?要素 - レコードという意味はどういう意味ですか?または列?いくつかのサンプルレコードと希望の結果を投稿できますか? – mlinth

+0

ORは、条件1または条件2と一致する行を返します。私の更新を探してください。私はすべてを明確にすると思います。 – Robert

+0

ああ、「排他的OR」を意味する。あなたの答えはうまくいきますが、最初の "OR"ステートメントの前後に角括弧を入れてもゴードンのものはそうです。 – mlinth

答えて

0

これは必要なものですか?

SELECT * 
FROM table 
WHERE (condition_1 or condition_2) and 
     not (condition_1 and condition_2); 
+0

残念ながらそうではありません。問題を定義するのが間違っているかもしれませんが、condition_1はcondition_2以外の結果を返すことがあります。私はそれを明確にするために問題を更新します。 – Robert

+0

質問が更新されました。 – Robert

0

、私はあなたの質問を理解していない直接

SELECT * 
FROM table 
WHERE (condition_1) != (condition_2) 
関連する問題