首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 聯合主鍵查詢技巧:多欄位合併比對去重

     編輯:Oracle 資料庫基礎

資料導入前的去重比對挑戰

從多表導入單表,資料可能重複。傳統 GROUP BY HAVING COUNT(*) > 1 僅能找出重複,仍需人工比對,效率極低。

資深專家技巧:虛擬聯合主鍵比對法

核心邏輯

  • 將多欄位串聯形成虛擬主鍵
  • 處理 NULL 值:NVL(col, '') 轉為空字串
  • 使用 NOT IN 排除目標表已存在的鍵值

標準寫法


SELECT * FROM T1 
WHERE NVL(COL1, '') || NVL(COL2, '') || COL3 
NOT IN (SELECT COL1 || COL2 || COL3 FROM T2);

操作流程

  1. 執行上述查詢取得 T1 中不重複的資料
  2. 將結果 INSERT INTO T2
  3. 完成無重複資料合併

關鍵優勢

  • 單一 SQL 完成多欄位去重判斷
  • 自動處理 NULL 值比對邏輯
  • 避免人工逐筆比對,大幅提升效率
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved