首先将两个字段都进行排序操作(从小到大),然后再判断每一行是否相等,最后如果每一行都是相等的,那么原始的两个字段内容就是一致的,否则就是不一致的。这个用sql应该是可以的,Excel如下:
【补充】在sql里面如下:【主要思路】
1、原始字段增加辅助列:值为1,2,3,4 有几行就到几
2、字段1升序并增加辅助列1,值为1,2,3,4
3、字段2升序并增加辅助列2,值为1,2,3,4
最后进行左连接,然后每一行进行判断,最后每行都相等则说明原始两个字段内容是一致的。
首先建立原始表:
然后执行下面的sql语句(嵌套的有点多)
select
case when sum(d."判断相等")=0 then '一致' else '不一致' end as 原始两个字段那内容是否一致
from
(
select
c.*,
case when c.字段1调整=c.字段2调整 then 0 else 1 end as 判断相等
from
(
select
a.*,
aa.字段1调整,
aa.辅助列1,
bb.字段2调整,
bb.辅助列2
from
(
select
a.*,
row_number() over() as 辅助列
from ods.temp_test_lzw a
) a
left join
(
select
a.字段1调整,
row_number() over() as 辅助列1
FROM
(
select
字段1 as 字段1调整
from ods.temp_test_lzw
order by 字段1
) a
) aa on a.辅助列=aa.辅助列1
left join
(
select
b.字段2调整,
row_number() over() as 辅助列2
FROM
(
select
字段2 as 字段2调整
from ods.temp_test_lzw
order by 字段2
) b
) bb on a.辅助列=bb.辅助列2
) c
) d
最后的结果如下:
在这里每行相等记为0,那么最终求和如果是0,那么就是一致,大于0就是不一致。