gpt4 book ai didi

PostgreSQL - 模式匹配 - 字符串到子字符串

转载 作者:行者123 更新时间:2023-11-29 13:43:59 24 4
gpt4 key购买 nike

我正在尝试根据匹配的邮政编码连接数据库中的两个表,但在有多个邮政编码与单行数据相关的地方遇到困难。

表 1 有 2 列(唯一 ID邮政编码)。一条记录可能在此列中只有一个邮政编码,也可能有多个以逗号分隔的邮政编码。

表 2 也有两列(发展描述邮政编码)。在此表中,邮政编码列只能有一个邮政编码。

我想确定并加入表 2 中的邮政编码匹配或包含在表 1 相关列中的位置。我已经能够在每列中有一个邮政编码的情况下这样做,但目前无法在表 1 中有多个邮政编码的地方这样做。

下面的代码会返回只有一个邮政编码的匹配项。

SELECT      t1.id,
t1.postcodes,
t2.dev_description,
t2.postcode
FROM table1 AS t1
INNER JOIN table2 AS t2
ON t2.postcode LIKE t1.postcodes
WHERE t2.postcode = 'XXX XXX'

我试过使用 '%'|| ||'%' 和其他各种功能,但老实说我有点不知所措。

如果有人能帮忙就太好了!谢谢

最佳答案

您可以加入:

',' || t1.postcodes || ',' like  '%,' || t2.postcode || ',%'

这将扩展为:

',1234AB,2345AB,3456AB,' like '%,1234AB,%'

或者您可以使用 string_to_array@> 包含运算符:

string_to_array(t1.postcodes, ',') @> array[t2.postcode]

这扩展为:

array['1234AB','2345AB','3456AB'] @> array['1234AB']

关于PostgreSQL - 模式匹配 - 字符串到子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51327318/

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