【发布时间】:2021-03-22 23:02:42
【问题描述】:
我想运行这样的查询,其中params 是text 数组:
select * from table_name where params[10]<>'Retail'
“在索引 10 处给出 params 数组中不包含值 Retail 的行”
有几行应满足该条件,即它们在该数组索引处具有“零售”以外的其他内容。但我仍然得到 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
【问题讨论】:
-
使用
psql运行时,很高兴看到\d table_name和SELECT params FROM table_name;(摘录)。 -
params[10]为我工作:dbfiddle.uk/… 你能提供一个小提琴来展示这个问题吗? -
数组数据似乎不一致,有些行包含的数组元素比其他行多。所以我正在寻找的值是在某些行上的一个稍微筛选的索引。这在仅仅查看整个字符串化数组时并不明显
标签: sql arrays postgresql where-clause sql-null