sqlserver里面有没有判断两个查询语句的结果一样的函数,两个查询语句如下:
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM bFileTree1 where nid=143
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM ConcurrentbFileTree1 where nid=143
现在我想要判断这两个查询到的记录是不是一样的,请大家帮帮忙!
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM bFileTree1 where nid=143
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM ConcurrentbFileTree1 where nid=143
现在我想要判断这两个查询到的记录是不是一样的,请大家帮帮忙!
except
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM ConcurrentbFileTree1 where nid=143
from (SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM [bFileTree1] where nid=143) A full join (SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM [ConcurrentbFileTree1] where nid=143) B
On A.nid=B.nid
except
SELECT Tag3MS,Tag2MS,Tag1,Tag1MS,Txt1,Txt2,Codeclass,users,CAddfile FROM ConcurrentbFileTree1 where nid=143 有记录说明不一致
不过就是有点罗嗦,,你声明两个参数,然后在两条SQL语句吧所有的列拼接起来,然后将得到的一列数据付给相应的参数,接着你判断两个参数得到的值是否相同,,MS_SQL系统函数没有,,不过你可以写一个这样的函数啊
select rw,case when a=b then '相同记录' else '不同的记录' end
from(
(SELECT Tag3MS+Tag2MS+Tag1+Tag1MS+Txt1+Txt2+Codeclass+users+CAddfile as a,row_number() over (order by select 1) as rw
FROM bFileTree1 where nid=143 )as a join
(SELECT Tag3MS+Tag2MS+Tag1+Tag1MS+Txt1+Txt2+Codeclass+users+CAddfile as b,row_number() over (order by select 1) as rw
FROM ConcurrentbFileTree1 where nid=143)as b
on a.rw=b.rw)as a
要比较结果是否相同,一个语句难实现
如果两个结果无重复,简单的方法
先查两结果记录是否相同,如不同,则不一样,
如记录数相同,再将两结果用union合并,查合并后记录数,如记录数不变,则两查询结果相同