[英]Accessing values in Postgres array
我想运行这样的查询,其中params
是一个text
数组:
select * from table_name where params[10]<>'Retail'
“给我参数数组不包含索引 10 处的值零售的行”
有几行应该满足该条件,即它们在该数组索引处具有“零售”以外的其他内容。 但我仍然得到 0 行。
但是,如果我这样做
select * from table_name where params[10]='Retail'
然后我按预期得到行,即过滤掉非“零售”行。
此外, select params[10] from table_name
给出了许多行,其值如下
{Retail}
{HNI}
正如我所期待的:
Retail
HNI
这告诉我,我得到的是一个数组而不是该索引处的值。 如何从数组中提取原始文本值,以便可以在 where 子句等中使用它?
Postgres 版本:13.1
客户端:DBeaver 7.0.0
我怀疑你想要is distinct from
if <>
,所以null
值得到正确处理,以及 arrays 的元素少于 10 个:
select * from table_name where params[10] is distinct from 'Retail'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.