如何使MINUS运算返回完整数据行而非仅Column A列?
解决方案
表结构与数据
表1
| Column A | Column B |
|---|---|
| A | New York |
| B | Istanbul |
| B | London |
表2
| Column A | Column B |
|---|---|
| A | New York |
| B | Istanbul |
| C | London |
你当前的SQL仅选取了Column A列进行MINUS运算,所以只能得到单列结果。要返回完整的行数据,需要让MINUS两侧的查询都包含所有需要的列,且列的数量、类型、顺序保持一致。
针对你期望的结果(C London)的SQL语句
这个结果对应表2中存在但表1中不存在的完整行,修改后的SQL如下:
SELECT Column A, Column B From Table2 MINUS SELECT Column A, Column B From Table1
额外说明
如果需要获取表1中存在但表2中不存在的完整行(即B London),可以使用以下SQL:
SELECT Column A, Column B From Table1 MINUS SELECT Column A, Column B From Table2
MINUS运算的核心是对比两侧查询的结果集,只有当两侧查询的列完全匹配时,才能基于整行的字段组合进行差异筛选,返回符合条件的完整记录。
内容的提问来源于stack exchange,提问作者anaksimandros
相关产品推荐
相关产品推荐

