sql - 防止 Oracle 减去语句删除重复项

标签 sql oracle

鉴于这两个表:

CREATE TABLE TEST1 (TEST  VARCHAR2(1 BYTE))
CREATE TABLE TEST2 (TEST  VARCHAR2(1 BYTE))

其中 TEST1 有两行的值为“A”,TEST2 有一行的值为“B”。

当我运行此命令时:
SELECT TEST FROM TEST1
MINUS
SELECT TEST FROM TEST2

我得到输出:
Test
-----
A

MINUS 似乎删除了重复项(因为 TEST1 中有两个“A”行)。

如何让 MINUS 查询包含重复值(返回两个“A”行)?

最佳答案

Oracle 支持 IN 语句中的多列,因此您可以编写:

SELECT a, b, c
FROM table1
WHERE (a,b,c) not in (
    select a,b,c from table2
)

关于sql - 防止 Oracle 减去语句删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859255/

相关文章:

mysql - 使用 ON DUPLICATE KEY UPDATE 进行大的自动插入

sql - 当 COUNT 另一个表时,从表中选择 2 行

mysql - 如何跳转到mysql中的下一个id

甲骨文 : Create Table as Select statement and Select query on created table in Single Stored Procedure

sql - 如何比较组中的行?

oracle - 为什么在 CLOB 上使用 REPLACE 函数会导致 CACHE_LOBS 增加...?

mysql - JSF 托管 bean 中的 SQL WHERE LIKE 子句

sql - 使用 Azure SQL 跨数据库查询

sql - Oracle SQL Developer 字符串变量绑定(bind)

java - 使用 JDBC 将 Sql 查询结果集导出到逗号分隔的文件