以下のテーブルは、ローカル データベースとリモート データベースで作成されます。
CREATE TABLE EMPLOYEE1 ( EMP_ID INTEGER, EMP_NAME VARCHAR(10), EMP_DEPT VARCHAR(10) );
両方のデータベースで作成されたテーブルに以下の行を挿入します。
INSERT INTO EMPLOYEE1 (EMP_ID, EMP_NAME,EMP_DEPT)
VALUES (1,'A','IT'), (2,'B','IT'), (3,'C','SALES'), (4,'D','SALES'), (5,'E','ACCOUNTS'), (6,'F','ACCOUNTS'), (7,'G','HR'), (8,'H','HR');
COMMIT;
私のシステムのローカルデータベースで以下のクエリを実行すると、クエリ結果は正しいです。つまり、クエリが正確に行う必要があるため、テーブル内のすべての行が返されます。しかし、同じクエリをリモート データベースで実行すると、4 行しか返されず、間違った結果になります。
SELECT * FROM EMPLOYEE1 WHERE (EMP_DEPT NOT IN ('IT','SALES') OR EMP_DEPT IN ('IT','SALES'));
クエリの動作が変わる理由を誰かが提案できますか?