【发布时间】:2020-06-06 02:59:27
【问题描述】:
以HR.employees 表为例。假设我要检查员工 205、206 和 207 的信息。请注意,207 不在表中。这是我将运行的查询:
select * from HR.employees
where employee_id in ('205', '206', '207');
这是我得到的结果:
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
| EMPLOYEE_ID | FIRST_NAME | LAST_NAME | EMAIL | PHONE_NUMBER | HIRE_DATE | JOB_ID | SALARY | COMMISSION_PCT | MANAGER_ID | DEPARTMENT_ID |
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
| 205 | Shelley | Higgins | SHIGGINS | 515.123.8080 | 02-06-07 | AC_MGR | 12008 | | 101 | 110 |
| 206 | William | Gietz | WGIETZ | 515.123.8181 | 02-06-07 | AC_ACCOUNT | 8300 | | 205 | 110 |
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
尽管 207 不在表中,但我仍然希望在查询返回中看到 207。除了员工id,所有文本列都可以为null,而数字列全部为0。像这样:
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
| EMPLOYEE_ID | FIRST_NAME | LAST_NAME | EMAIL | PHONE_NUMBER | HIRE_DATE | JOB_ID | SALARY | COMMISSION_PCT | MANAGER_ID | DEPARTMENT_ID |
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
| 205 | Shelley | Higgins | SHIGGINS | 515.123.8080 | 02-06-07 | AC_MGR | 12008 | | 101 | 110 |
| 206 | William | Gietz | WGIETZ | 515.123.8181 | 02-06-07 | AC_ACCOUNT | 8300 | | 205 | 110 |
| 207 | Null | Null | 0 | Null | Null | Null | 0 | 0 | 0 | 0 |
+-------------+------------+-----------+----------+--------------+-----------+------------+--------+----------------+------------+---------------+
如何修改查询以实现此目的?
【问题讨论】:
-
构造一个硬编码的值列表,然后将其左连接到您的表。这是一个关于构建列表的问题。 stackoverflow.com/questions/6345635/…
-
你想做什么?这只是感觉错误
-
@Kevin 我需要逐项比较两个表。一个表在 Excel 电子表格中,而另一个表在数据库中。 Excel 电子表格有一个我需要检查的固定实体列表。它可以包含比查询返回的更多的实体。目前我无法从查询中复制一整列,因为我必须跳过 Excel 中但不在查询中的条目。