用left join 连接两个表,连接条件为表1.a列=表2.b列,但在SQL里判断结果全为否,连接失败。当把表1.a列和表2.b列分别从数据库导出来,在excel用vlookup进行匹配,又能成功匹配上。请问这是为什么?已知在数据库两类的数据类型均为varchar
这种情况可能是因为在SQL查询中表1.a列和表2.b列的数据类型不一致,导致无法匹配成功。尽管在数据库中两类的数据类型均为varchar,但是有可能存在一些特殊字符或者空格等无法直接观察的差异,影响了SQL的匹配结果。在Excel中使用vlookup进行匹配时,由于Excel使用了不同的匹配算法,因此可能能够成功匹配。为了解决这个问题,可以在SQL查询中使用TRIM函数去除表1.a列和表2.b列中的空格,或者尝试将两个列的数据类型转换为相同的类型进行匹配。
因为存在null的数据,加上过滤条件,where 1.a is not null and 2.b is not null;
如有疑问,可以继续与我联系。
但在SQL里判断结果全为否,是如何判断的?建议把sql贴出来,这样好帮你分析问题。
不知道你这个问题是否已经解决, 如果还没有解决的话: