SQL连接表(如果一个字符串出现在另一字符串中)

时间:2019-03-20 16:44:34

标签: sql postgresql

假设有两个表

表A:

**Middle_name**
John
Joe
Fred

表B:

**Full_name**
Billy, Joe-Bob
JasonFredAnderson
Tom John Jefferson

我想加入Middle_nameFull_name上的表。

我已经尝试过使用部分字符串匹配,如下所示,但这没有用。由于某些原因,它与全名不匹配,中间名前没有逗号。使用postgres。

SELECT Full_name, Middle_name
FROM B
JOIN A
ON B.Full_name LIKE CONCAT('%', A.Middle_name, '%')

重申一下,由于FredJohn之前有逗号,因此上述查询将正确地连接JoeBilly, Joe-Bob,但不能正确地连接Joe

1 个答案:

答案 0 :(得分:2)

我相信您可以通过以下方式使用POSITIION()函数来做到这一点:

SELECT Full_name, Middle_name
FROM B
JOIN A
ON POSITION(Middle_name IN Full_name)>0