0

以下のテーブルは、ローカル データベースとリモート データベースで作成されます。

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'));

クエリの動作が変わる理由を誰かが提案できますか?

4

1 に答える 1

0

クエリに従って、すべてのレコードを選択したいとします。次に、単に次を使用できます

SELECT * FROM EMPLOYEE1

この条件の目的は何ですか?

WHERE (EMP_DEPT NOT IN ('IT','SALES') OR EMP_DEPT IN ('IT','SALES'))
于 2014-07-15T06:25:45.350 に答える