簡體   English   中英

sql 除外 - 不包括一列

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM