如何比较两个字段中内容是否一致

字段1内容:  3001,3002,3003,3004

字段2内容:  3002,3003,3001,3004

比对结果应该是 一致

如何用FineBI比较两个字段内容?或mysql等其他方法也可?

FineBI 帆软用户NViW0URbw7 发布于 2023-7-4 10:19 (编辑于 2023-7-4 10:20)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
迅哥小黑Lv6见习互助
发布于2023-7-4 17:52(编辑于 2023-7-5 13:40)

首先将两个字段都进行排序操作(从小到大),然后再判断每一行是否相等,最后如果每一行都是相等的,那么原始的两个字段内容就是一致的,否则就是不一致的。这个用sql应该是可以的,Excel如下:image.png

【补充】在sql里面如下:【主要思路】

1、原始字段增加辅助列:值为1,2,3,4 有几行就到几

2、字段1升序并增加辅助列1,值为1,2,3,4

3、字段2升序并增加辅助列2,值为1,2,3,4

最后进行左连接,然后每一行进行判断,最后每行都相等则说明原始两个字段内容是一致的。

首先建立原始表:image.png

然后执行下面的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

最后的结果如下:image.png

image.png

在这里每行相等记为0,那么最终求和如果是0,那么就是一致,大于0就是不一致。

最佳回答
0
snrtuemcLv8专家互助
发布于2023-7-4 10:25

EXACT:

EXACT(text1,text2):检测两组文本是否相同。如果完全相同,EXACT函数返回TRUE;否则,返回FALSE。EXACT函数可以区分大小写,但忽略格式的不同。同时也可以利用EXACT函数来检测输入文档的文字。 • 示例 EXACT("Spreadsheet","Spreadsheet")等于1。 EXACT("Spreadsheet","S preadsheet")等于0。 EXACT("Spreadsheet","spreadsheet")等于0。

  • 2关注人数
  • 736浏览人数
  • 最后回答于:2023-7-5 13:40
    请选择关闭问题的原因
    确定 取消
    返回顶部