我在Ingres数据库table1和table2中有两个表。两者都包含以下字段; -
date_of_birth ingresdate
forename c35
surname c35
我希望将一个表中的人与另一个表中的人匹配。名字来自不同的来源,因此不相同。他们也有不同的情况。
我想要table1中的所有记录和table2中我可以匹配名称的记录
到目前为止,我使用了以下SQL
SELECT a.forename, a.surname, a.birth_date, b.forename, b.surname
FROM table1
LEFT JOIN table2 ON c.birth_date = b.birth_date AND left(upper(squeeze(b.name)), 3) = left(upper(squeeze(c.forename )), 3)
AND left(upper(squeeze(b.surname)), 3) = left(upper(squeeze(c.surname )), 3)
这是好的,除了下面的情况
之外,效果很好表1
forename = RAJA MOHAMMAD
surname = ZUBAIR
表2
forename = MOHAMMAD
surname = ZUBAIR
偶尔会遗漏姓名/中间名。
我该怎么说"匹配table2中的整个forename出现在table1&#34中forename的某个地方?
我有点想说
WHERE squeeze(trim(upper(2.forename))) LIKE '% squeeze(trim(upper(1.forename))) %'
但你不能在SQL中做到这一点吗?
答案 0 :(得分:2)
现在我很清楚答案......
WHERE squeeze(trim(upper(2.forename))) LIKE '%' + squeeze(trim(upper(1.forename))) + '%'