問題描述:
今天是新系統上線之後第一次跑資料,需要和老系統跑出來的表做對比。完全一樣則專案執行ok,新系統在時間上減少了人工干預,提高了80個百分點。先用老系統跑一次資料,匯入到乙個備份表。再用新系統跑一次,數量和備份表裡面的一樣。心裡坦蕩了一點。再比較裡面每一行資料是否一樣的時候,先是用了如下方式:
select
count(0)
from
select * from table_nm_bac
union
select * from table_nm
) a
表table_nm_bac和表table_nm裡面的資料都是1萬條,結果上述query出來的結果是9千條。
環境:sql server 2008
解決方法:
因為想到不可能union出來的結果比每個表數量少,所以立馬用except的如下方式:
select
column_nm1,
column_nm2
...from
table_nm
except
select
column_nm1,
column_nm2
...from
table_nm_bac
go select
column_nm1,
column_nm2
...from
table_nm_bac
except
select
column_nm1,
column_nm2
...from
table_nm go
這樣兩個query出來的結果都是空的。我就放心了。後來用下面的query再檢查了一遍資料,結論出來了,是因為union把錶裡面自己的重複資料給除掉了:
select count(0) from(
select distinct * from table_nm) a
goselect
count(0)
from
(select * from table_nm
union
select * from table_nm)go
distinct後的資料和union自己後的資料是一樣一樣的。
結論:比對兩個表資料是否一致還是用except方式比較好, 因為兩個做union會把自己表裡面的重複資料也除掉。
兩個JSON對比
需求 兩個json對比 目前有兩個json 型別的資料,和 對比出來的結構需要有,2 3 4 5 class bo public bo string rowno,string name public string getrowno public void setrowno string rowno ...
兩個問題的對比
問題1 cf390c 給定若干行聊天記錄 發言人 話 有些聊天記錄的 發言人 是缺失的,已知相鄰對話發言人一定不同,且每個發言人說的話裡都不會包含自己的名字,現給定可能的發言人的集合,請填充每個對話的發言人.來自codeforces round 390 問題2 lc36 給定乙個9 9的矩陣,有些元...
兩個檔案對比 C
public static bool filecompare string file1,string file2 int file1byte 0 int file2byte 0 using filestream fs1 new filestream file1,filemode.open fs2 n...