[英]sql except - one column not included
我有两个相同的表(一个是另一个的副本,但记录在不同时间插入)。 假设它们看起来像那样(但在我的示例中,有 40 列而不是 3 列):
表格1
a b time
--------------
1 5 13:00
2 6 13:01
3 7 13:02
表 2
a b time
---------------
1 5 15:00
2 6 15:01
3 7 15:02
我想用一个简单的 EXCEPT 来比较它们
SELECT * FROM Table 1
EXCEPT
SELECT * FROM Table 2
我正在尝试使用 WHERE 子句,但它没有用。 如何在没有列时间的情况下执行 EXCEPT 语句? 因为对我来说,在时间列中我有不同的值是完全可以的。 我现在使用“不存在”来比较它们,但我更喜欢一些更简单的方法。
它是结构使用除了
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
EXCEPT
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
所以:
SELECT a,b FROM Table 1
EXCEPT
SELECT a,b FROM Table 2
显而易见的解决方案是您需要列出所有列:
select a, b, c, . . .
from table1
except
select a, b, c, . . .
from table2;
您可以使用系统表生成列列表。 您没有指定您的数据库,但类似:
select column_name
from information_schema.columns
where table_name = 'table1' and column_name <> 'time'
order by ordinal_position;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.