【发布时间】:2020-08-13 20:01:29
【问题描述】:
我正在从 X 表中提取表 A 中的一些记录。 现在,我想选择表 A 中不可用但表 B 中可用的记录。但同时,我不想选择两个表中都可用的记录。
另外,如果表 A 中的一列为空,但表 B 中记录中的同一列有值,我也想取。
是否有可能在一个语句中做这样的事情?
【问题讨论】:
-
请编辑您的问题,显示表格 DDL 示例表格数据和预期输出
我正在从 X 表中提取表 A 中的一些记录。 现在,我想选择表 A 中不可用但表 B 中可用的记录。但同时,我不想选择两个表中都可用的记录。
另外,如果表 A 中的一列为空,但表 B 中记录中的同一列有值,我也想取。
是否有可能在一个语句中做这样的事情?
【问题讨论】:
这是一个简单的基于集合的操作。关系数据库在这方面非常出色:
CREATE TABLE a (id NUMBER);
CREATE TABLE b (id NUMBER);
INSERT INTO a VALUES (1);
INSERT INTO a VALUES (3);
INSERT INTO b VALUES (2);
INSERT INTO b VALUES (3);
SELECT id FROM b
MINUS
SELECT id FROM a;
ID
2
【讨论】: