将一个 table 的名字与另一个 table 的名字匹配
Match names from one table with names from other
我有一个table
CID
FirstName
LastName
Loc
123
Brad
Shaw
ASD
234
Chad
Reed
SES
345
Bryan
Miles
WED
456
Mr Bradley
Knight
ASD
567
Doctor Chadwick
Prince
WED
678
Mrs Bryana
Yang
SES
789
Arty-stry
Blue
POR
另一个table
FirstName
Bryan
Ben
Brad
Chad
我希望得到一个结果,将第 2 table 中的所有名称与第 1 table 中的名称相匹配,无论第 2 table 中的名称是否构成第 1 table.
CID
FirstName
LastName
Loc
TABLE2_MATCH
123
Brad
Shaw
ASD
Brad
234
Chad
Reed
SES
Chad
345
Bryan
Miles
WED
Bryan
456
Mr Bradley
Knight
ASD
Brad
567
Doctor Chadwick
Prince
WED
Chad
678
Mrs Bryana
Yang
SES
Bryan
789
Arty-stry
Blue
POR
No_match
我有数千个名字,我需要找到更好的方法来执行此操作,目前我正在尝试执行 IN 语句,但它匹配确切的名称,因为我希望子字符串也匹配。我希望这是清楚的。很高兴提供更多信息
查找表 1 中的 FirstName
是 like
表 2 的 FirstName
包裹在 '%' 中的所有外连接:
select
a.CID,
a.FirstName,
a.LastName,
a.Loc,
coalesce(b.FirstName, 'No_match') as TABLE2_MATCH
from table1 a
left join table2 b on lower(a.FirstName) like '%' || lower(b.FirstName) || '%'
字符串 X 是字符串 Y 的子字符串可以表示为 Y like '%X%'
.
对 lower()
的调用使其不区分大小写,尽管如果您删除对 lower()
.
的调用,看看它是否仍然有效
我有一个table
CID | FirstName | LastName | Loc |
---|---|---|---|
123 | Brad | Shaw | ASD |
234 | Chad | Reed | SES |
345 | Bryan | Miles | WED |
456 | Mr Bradley | Knight | ASD |
567 | Doctor Chadwick | Prince | WED |
678 | Mrs Bryana | Yang | SES |
789 | Arty-stry | Blue | POR |
另一个table
FirstName |
---|
Bryan |
Ben |
Brad |
Chad |
我希望得到一个结果,将第 2 table 中的所有名称与第 1 table 中的名称相匹配,无论第 2 table 中的名称是否构成第 1 table.
CID | FirstName | LastName | Loc | TABLE2_MATCH |
---|---|---|---|---|
123 | Brad | Shaw | ASD | Brad |
234 | Chad | Reed | SES | Chad |
345 | Bryan | Miles | WED | Bryan |
456 | Mr Bradley | Knight | ASD | Brad |
567 | Doctor Chadwick | Prince | WED | Chad |
678 | Mrs Bryana | Yang | SES | Bryan |
789 | Arty-stry | Blue | POR | No_match |
我有数千个名字,我需要找到更好的方法来执行此操作,目前我正在尝试执行 IN 语句,但它匹配确切的名称,因为我希望子字符串也匹配。我希望这是清楚的。很高兴提供更多信息
查找表 1 中的 FirstName
是 like
表 2 的 FirstName
包裹在 '%' 中的所有外连接:
select
a.CID,
a.FirstName,
a.LastName,
a.Loc,
coalesce(b.FirstName, 'No_match') as TABLE2_MATCH
from table1 a
left join table2 b on lower(a.FirstName) like '%' || lower(b.FirstName) || '%'
字符串 X 是字符串 Y 的子字符串可以表示为 Y like '%X%'
.
对 lower()
的调用使其不区分大小写,尽管如果您删除对 lower()
.