我很感激在sql脚本上的一些帮助。所以我有一个列表,如下所示和一个数据库表-Table1,以语句作为列名,我想创建一个名为location的列,脚本可以在语句列中搜索,一旦它在列表中的任何行中找到任何项目,它就会在location列
中声明(新加坡,伦敦,悉尼,德国,中国,非洲,)
Statement
-------------------
Going to london
Apples in Tema
Sydney is a city
China is a country
Africa is a continent
最后我希望看到一个这样的表:
语句 | 位置 | 要去伦敦伦敦 |
---|---|
苹果在Tema | Tema |
悉尼是一个城市 | 悉尼 |
中国 | 中国 |
非洲是一个大陆 | 非洲 |
如果你有一个位置列表,你可以使用:
select t1.*, v.place
from table1 t1 cross join
(values ('tema'), ('london'), ('sydney'), ('germany'), ('china'), ('africa')
) v(place)
on Statement::text ilike '%' || v.place || '%';
注意:你可能想使用正则表达式来包含工作边界,但你的示例代码没有这样做。