gpt4 book ai didi

部分字符串上的 SQL 连接表

转载 作者:行者123 更新时间:2023-11-29 12:50:30 24 4
gpt4 key购买 nike

我在 Postgres 数据库中有两个表:

表A:

**Middle_name**
John
Joe
Fred
Jim Bob
Paul-John

表 B:

**Full_name**
Fred, Joe, Bobda
Jason, Fred, Anderson
Tom, John, Jefferson
Jackson, Jim Bob, Sager
Michael, Paul-John, Jensen

有时中间名有连字符或中间有空格。但中间名中从来没有逗号。如果它是连字符或两个中间名,表 A 和表 B 中的条目仍然相同。

我想加入 Middle_nameFull_name 上的表。困难的部分是连接必须只检查 Full_name 中逗号之间的值。否则它可能会意外匹配名字。

我一直在使用下面的查询,但我刚刚意识到没有什么能阻止它意外地将中间名与名字匹配。

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

我想知道如何重构此查询以仅匹配中间名(假设它们都以相同的格式出现)。

最佳答案

使用 split_part('Fred, Joe, Bobda', ',', 2) 返回中间名 joe

SELECT Full_name, Middle_name
FROM B
JOIN A
ON split_part(B.Full_name, ',', 2)=A.Middle_name

demo for returning middle name

关于部分字符串上的 SQL 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55268200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com