gpt4 book ai didi

sql - 检查数组中的任何子字符串是否出现在字符串中?

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

我有以下查询:

select case when count(*)>0 then true else false end
from tab
where param in ('a','b') and position('T' in listofitem)>0

这会检查 'T' 是否存在于列 listofitem 中,如果存在,则计数 > 0。基本上它是搜索子字符串。

这在这个私有(private)案例中效果很好。然而,我的真实情况是我有一个名为 sub_arraytext[],这意味着要检查多个值。如何修改查询以处理 sub_array 类型?我更喜欢将它放在查询中而不是带有循环的函数中。

我实际需要的是:

select case when count(*)>0 then true else false end
from tab
where param in ('a','b') and position(sub_array in listofitem)>0

这不起作用,因为 sub_arrayText[] 类型

最佳答案

使用 unnest() function扩展您的数组 & bool_and()(或 bool_or() - 这取决于您想要匹配的内容:所有 数组元素,或 < em>至少一个)到aggregate :

select count(*) > 0
from tab
where param in ('a','b')
and (select bool_and(position(u in listofitem) > 0)
from unnest(sub_array) u)

关于sql - 检查数组中的任何子字符串是否出现在字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43185196/

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