前景提要
领导给了两份表名,需要对比一下,哪些在表A中的内容,在表B中有。
初步分析
拿到手第一时间就想的是用Excel去搞,用vlookup去模糊匹配,但实际效果很差
最终办法
把两份数据导入库中,然后将他们笛卡尔积关联,使用 instr() 去判断表A中的数据是否在表B中出现
instr() 函数介绍,来源百度
instr(string1, string2, start_position,nth_appearance )
参数
●string1:源字符串,要在此字符串中查找。
●string2:要在string1中查找的字符串。
●start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
●nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
脚本:
select * from table_a inner join table_b
where instr(table_b.name,table_a.name)>=1
适用于数据量不大的情况,可快速筛选