日期:2014-05-17 浏览次数:20644 次
--两个表A,B。使用下述语句判断,显示‘不等’ select Matchtype= case when (SELECT CHECKSUM_AGG (BINARY_CHECKSUM (*)) FROM A) = (SELECT CHECKSUM_AGG (BINARY_CHECKSUM (*)) FROM B) then 'Equal' else 'Not Equal' end --但是,使用下面语句时,显示记录条数相等。这是为什么呢? select count(1) from (select * from A union select * from B)fin select count(1) from A
declare @a table(id int,de nchar(500)) declare @b table(id int,de varchar(5)) insert into @a values(1,null),(2,'bbb'),(2,'bbb') insert into @b values(1,null),(11,null),(2,'bbb') select count(1) from @a --> 3 select count(1) from @b --> 3 select count(1) from (select * from @a union select * from @b) fin --> 3 select Matchtype= case when (select checksum_agg(binary_checksum(*)) from @a) = (select checksum_agg(binary_checksum(*)) from @b) then 'Equal' else 'Not Equal' end --> Not Equal