Ну вот так примерно:
table1:
load * inline [
id, ФИО
1, Иванов Иван Иванович
2, Иванов-Петров Иван Иванович
3, Сергеев Дмитрий Иван Петрович
4, Макаров Дмитриев Петр Иванович
];
table2:
load * inline [
ФИО2
Иванов Иванович Иван
Петров Иванов Иванович Иван
Дмитрий-Иван Сергеев Петрович
Макаров Дмитриев Петр Иванович
];
MappingTmp:
load
id,
Upper(subfield( replace(ФИО,'-',' '),' ',IterNo())) as partOfName
Resident table1
while len(subfield( replace(ФИО,'-',' '),' ',IterNo()))>0;
orderMapTab1:
load id, partOfName, RowNo() as sortWieght
Resident MappingTmp
Order by id, partOfName;
drop table MappingTmp;
left join(table1)
load
id, concat(partOfName,'|',sortWieght) as key
Resident orderMapTab1
Group by id;
drop table orderMapTab1;
MappingTmp:
load
ФИО2,
Upper(subfield( replace(ФИО2,'-',' '),' ',IterNo())) as partOfName
Resident table2
while len(subfield( replace(ФИО2,'-',' '),' ',IterNo()))>0;
orderMapTab2:
load [ФИО2], partOfName, RowNo() as sortWieght
Resident MappingTmp
Order by ФИО2, partOfName;
drop table MappingTmp;
left join(table2)
load
ФИО2, concat(partOfName,'|',sortWieght) as key
Resident orderMapTab2
Group by ФИО2;
drop table orderMapTab2;