1

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 でこれを行うことはできませんか?

4

1 に答える 1