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 回答