当语句包含列表中的项时,将其显示在新列中



我很感激在sql脚本上的一些帮助。所以我有一个列表,如下所示和一个数据库表-Table1,以语句作为列名,我想创建一个名为location的列,脚本可以在语句列中搜索,一旦它在列表中的任何行中找到任何项目,它就会在location列

中声明(新加坡,伦敦,悉尼,德国,中国,非洲,)

Statement 
-------------------
Going to london
Apples in Tema
Sydney is a city
China is a country
Africa is a continent 

最后我希望看到一个这样的表:

tbody> <<tr>要去伦敦伦敦
语句位置
苹果在TemaTema
悉尼是一个城市悉尼
中国中国
非洲是一个大陆非洲

如果你有一个位置列表,你可以使用:

select t1.*, v.place
from table1 t1 cross join
(values ('tema'), ('london'), ('sydney'), ('germany'), ('china'), ('africa')
) v(place)
on Statement::text ilike '%' || v.place || '%';

注意:你可能想使用正则表达式来包含工作边界,但你的示例代码没有这样做。

相关内容

  • 没有找到相关文章

最新更新