表 9.54 顯示了陣列類型可用的特殊運算子。除了這些之外,表 9.1 中顯示的常用比較運算子也適用於陣列。比較運算子逐個元素比較陣列內容,使用元素資料類型的預設 B 樹比較函數,並根據第一個差異進行排序。在多維陣列中,元素以行優先順序訪問(最後一個下標變化最快)。如果兩個陣列的內容相同但維度不同,則維度資訊中的第一個差異決定排序順序。
表 9.54. 陣列運算子
運算子 描述 範例 |
---|
第一個陣列是否包含第二個陣列,也就是說,第二個陣列中出現的每個元素是否等於第一個陣列的某個元素? (重複項不作特殊處理,因此
|
第一個陣列是否被第二個陣列包含?
|
陣列是否重疊,也就是說,是否有任何共同元素?
|
連接兩個陣列。連接空陣列或空陣列是一個空操作;否則陣列必須具有相同的維度數(如第一個範例所示),或者維度數相差一(如第二個範例所示)。如果陣列不是相同的元素類型,它們將被強制轉換為一個通用類型(請參閱 第 10.5 節)。
|
將一個元素連接到陣列的前面(該陣列必須為空或一維)。
|
將一個元素連接到陣列的末尾(該陣列必須為空或一維)。
|
有關陣列運算子行為的更多詳細資訊,請參閱 第 8.15 節。 有關哪些運算子支援索引操作的更多詳細資訊,請參閱 第 11.2 節。
表 9.55 顯示了可用於陣列類型的函數。 有關使用這些函數的更多資訊和範例,請參閱 第 8.15 節。
表 9.55. 陣列函數
函數 描述 範例 |
---|
將一個元素附加到陣列的末尾(與
|
連接兩個陣列(與
|
傳回陣列維度的文字表示法。
|
傳回一個陣列,其中填滿給定值的副本,其維度為第二個引數指定的長度。 可選的第三個引數提供每個維度的下限值(預設為全部
|
傳回請求的陣列維度的長度。(對於空陣列或遺失的陣列維度,會產生 NULL 而非 0。)
|
傳回請求的陣列維度的下限。
|
傳回陣列的維度數。
|
傳回陣列中第二個引數第一次出現的註標,如果不存在則傳回
|
傳回一個陣列,其中包含給定陣列中第二個引數所有出現次數的註標。陣列必須是一維的。比較使用
|
將元素添加到陣列的開頭(與
|
從陣列中移除所有等於給定值的元素。陣列必須是一維的。比較使用
|
將每個等於第二個引數的陣列元素替換為第三個引數。
|
傳回一個陣列,其中包含從
|
隨機洗牌陣列的第一個維度。
|
將每個陣列元素轉換為其文字表示形式,並將這些元素用
|
傳回請求的陣列維度的上限。
|
傳回陣列中元素的總數,如果陣列為空,則傳回 0。
|
透過移除最後
|
將陣列展開成一組列。陣列的元素按照儲存順序讀出。
1 2
foo bar baz quux |
將多個陣列(可能具有不同的資料類型)展開成一組列。 如果陣列長度不完全相同,則較短的陣列會以
a | b ---+----- 1 | foo 2 | bar | baz |
另請參閱第 9.21 節,關於與陣列一起使用的彙總函式 array_agg
。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格報告文件問題。