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