假设有两个表
表A:
**Middle_name**
John
Joe
Fred
表 B:
**Full_name**
Billy, Joe-Bob
JasonFredAnderson
Tom John Jefferson
我想加入 Middle_name
和 Full_name
上的表。
我试过使用如下所示的部分字符串匹配,但没有奏效。由于某种原因,它不匹配全名和中间名前的逗号。使用 postgres。
SELECT Full_name, Middle_name
FROM B
JOIN A
ON B.Full_name LIKE CONCAT('%', A.Middle_name, '%')
重申一下,上面的查询会正确连接 Fred
和 John
,但不会连接 Joe
,因为 Billy, Joe-Bob
在 Joe
之前有一个逗号。
最佳答案
我相信您可以通过这种方式使用 POSITIION() 函数来做到这一点:
SELECT Full_name, Middle_name
FROM B
JOIN A
ON POSITION(Middle_name IN Full_name)>0
关于如果一个字符串出现在另一个字符串中,则 SQL 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266024/