我在 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 中的整个名字出现在 table1 的名字中的某处”?
我有点想说
WHERE squeeze(trim(upper(2.forename))) LIKE '% squeeze(trim(upper(1.forename))) %'
但是你不能在 SQL 中做到这一点?