要确定哪些 SQL 语句的查询结果相同,我们需要分析每个查询语句的逻辑:
A: `SELECT * FROM employee WHERE job='manager' OR job='salesman';`
- 这个查询会返回所有 `job` 为 `manager` 或 `salesman` 的记录。它使用了 `OR` 运算符,所以只要满足其中一个条件即可。
B: `SELECT * FROM employee WHERE job='manager' AND job='salesman';`
- 这个查询试图查找 `job` 同时为 `manager` 和 `salesman` 的记录。由于一个字段不可能同时有两个不同的值,因此这个查询结果将是空集。
C: `SELECT * FROM employee WHERE job='manager' UNION SELECT * FROM employee WHERE job='salesman';`
- 这个查询使用 `UNION` 结合了两个子查询的结果。`UNION` 运算符会去除重复的记录,因此它会返回所有 `job` 为 `manager` 或 `salesman` 的记录,与 A 的结果相同。
D: `SELECT * FROM employee WHERE job IN ('manager', 'salesman');`
- 这个查询使用 `IN` 运算符来查找 `job` 为 `manager` 或 `salesman` 的记录。它的效果与 A 相同。
综合以上分析,查询结果相同的 SQL 语句是 A、C 和 D。因此,正确答案是 A、C、D。