特定の列が重複しているレコードを除外しようとしています。この最後の/最初の名前のテーブルに一致する 'Y'レコードがない場合、そのフラグに 'N'を持つ行を表示するためにこのクエリを構築しました。これらの2つの「not in」クエリの結果が異なるのはなぜですか?
select * from Table where LName+FName not in
(select LName+FName from Table where FLAG = 'y')
しかし、これは0の結果が戻ってきます。内側のクエリは期待される結果を返します。内側のクエリを実行し、以下のような結果値を手動で貼り付けると、結果とともに実行されます。
select * from Table where LName+Fname not in ('DoeJohn','AbelAdam')
ここでは正確に何が起こっていますか?
あなたは表の別名を追加してみて、問題がまだ存在するかどうかを確認することができ、例えば、 '選択*表からどこa.LName + a.FNameません。 (表bのb.LName + b.FNameを選択します。b.FLAG = 'y') '? – a1ex07
両方のテーブルの動作に変更はありません。 – user9114357
クエリのどちらの部分にも 'null'という名前がありますか? 'not in(list、including、null)'は常に不確定を返すので(連結した 'null'の場合は' null'を返すべきです)。道徳的です:問題を示すデータのサンプルを表示する必要があります。 –