Ingres データベース table1 と table2 に 2 つのテーブルがあります。どちらにも、特に次のフィールドが含まれています;-
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
時折、名/ミドル ネームが見落とされます。
「テーブル 2 のフォアネーム全体がテーブル 1 のフォアネームのどこかにある場合に一致する」とは、どのように言えばよいでしょうか?
ちょっと言いたい
WHERE squeeze(trim(upper(2.forename))) LIKE '% squeeze(trim(upper(1.forename))) %'
しかし、SQL でこれを行うことはできませんか?