簡體   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