繁体   English   中英

访问 Postgres 数组中的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM