6

7 つを超えるテーブルを結合する複雑なクエリがあります。結合後、クエリの結果をフィルタリングしたいと思います。

ここに私が観察したことがあります。

where句を実行すると

where X.Name != 'xxx'
and  XY.Product != 1

フィルタリングされた結果が得られますが、X.Name と XY.Product のすべての null 値も結果から消えます。null 値を保持したいと思います。

私も試しました:

and X.Name != 'xxx'
and  XY.Product != 1

where 句を完全に削除して and を挿入しましたが、このアプローチではフィルタリングがまったく表示されません。

null 値を失わずに結果をフィルタリングする方法はありますか??

4

5 に答える 5

0
SELECT X.NAME,XY.PRODUCT FROM

(SELECT ID,NAME FROM TABLE_X WHERE NAME!=1)X
OUTER JOIN
(SELECT ID,PRODUCT FROM TABLE_XY WHERE PRODUCT!=1)XY
ON X.ID=XY.ID
于 2013-09-23T17:30:31.890 に答える
0

これを使用しない理由: where isnull(X.Name,'') != 'xxx' and isnull(XY.Product,0) != 1

于 2014-10-16T20:27:29.433 に答える
0
where (X.Name != 'xxx' or X.name Is Null)
and  (XY.Product != 1 or XY.Product Is Null)
于 2013-09-23T16:50:03.517 に答える