下表是在本地数据库和远程数据库中创建的。
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'));
任何人都可以建议查询行为发生变化的原因吗?
答案 0 :(得分:0)
根据您的查询,您要选择所有记录。然后,您只需使用以下
SELECT * FROM EMPLOYEE1
这种情况的目的是什么?
WHERE (EMP_DEPT NOT IN ('IT','SALES') OR EMP_DEPT IN ('IT','SALES'))