[英]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.