兩個表之間多字段的匹配!

2021-04-13 01:58:37 字數 770 閱讀 7172

/*

乙個專案中涉及到問題:

歷史工資資料中的員工資訊與最新的員工資訊之間存在差異,

需要對歷史資料到進行匹配後,才能進行匯入

*/--建立測試環境

declare @a table(

id int,

name varchar(10)

)declare @b table(

id int,

name varchar(10)

)insert into @a

select 1, '張三' union

select 2, '李四' union

select 3, '王二'

insert into @b

select 1, '王二'   union

select 2, '李四'   union

select 3, '張三'

--根據姓名來匹配

select * from @a a join @b b on a.name = b.name

where a.id <> b.id

/*id name id name

1 張三 3 張三

3 王二 1 王二

*/--根據編號來匹配

select * from @a a join @b b on a.id = b.id

where a.name <> b.name

/*id name id name

1 張三 1 王二

3 王二 3 張三

*/

sql in 的多字段匹配

in 的用法 類似於 select from t where a,c in a1,c2 a2,c3 首先 in的單字段 匹配 select from where a in a1,a2,a3 該語法中a 的 型別如果是 純數字的,即使 01,02這種的字串也是可以執行成功的,並且不需要加單引號.如果是...

根據兩個或者更多字段清除重複資料

use dbname drop table tmptable drop table tmptable2 drop table newtable select identity int,1,1 as autoid into tmptable from orgtable select min autoi...

ORACLE 兩個表之間更新的實現

前提條件 表info user中有字段id和name,欄位id為索引 表data user info中有字段id和name,欄位id為索引 其中表info user中欄位id和表data user info中欄位id數值一致。要求實現 更新表info user中的字段name 與表data user...