我想在WHERE子句中放置一个条件,如果文本字段包含在语句中声明的数组的子集中,则返回true。这是使用postgres v15.1。我把这个语句简化为下面的例子:
SELECT 'case_1'::TEXT IN((ARRAY['case_1','case_2','case_3']) [1:2]);
这应该声明一个包含case_1,2,3的数组,获取包含case_1,2的数组的子集,然后测试case_1是否在数组中。预期结果为真。
实际行为是错误的:“运算符不存在text=text[]"。
我理解IN()操作符是一个测试,如果左手参数在右边的参数中,它有一个维度。
如果case_1在数组的子集中,我如何纠正语法返回true或false?
1条答案
按热度按时间vwoqyblh1#
就像错误说的,你把你的类型搞砸了。
IN
关键字需要括号中的显式项列表。您已经为它提供了一个项-一个数组。你想要
ANY(...)