日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數組函數和操作符

本文介紹了PolarDB PostgreSQL版(兼容Oracle)支持的數組操作符和數組函數。

數組操作符

數組函數表展示了可以用于數組類型的函數。

數組函數

  1. 第一個數組是否包含第二個數組,也就是說,出現在第二個數組中的每個元素是否等于第一個數組中的某個元素。重復值不需要特殊處理,因此 ARRAY[1] 和 ARRAY[1,1]被認為包含對方,即:

anyarray @> anyarray → boolean
ARRAY[1,4,3] @> ARRAY[3,1,3] → t
  1. 第一個數組是否包含在第二個數組中:

anyarray <@ anyarray → boolean
ARRAY[2,2,7] <@ ARRAY[1,7,4,2,6] → t
  1. 數組是否有重疊,或者說數組間是否有共同的元素:

anyarray && anyarray → boolean
ARRAY[1,4,3] && ARRAY[2,1] → t
  1. 連接兩個數組。連接空(null)或空數組是一個無操作(no-op);否則,數組必須具有相同的維度數(如第一個示例所示),或者維度數相差一個(如第二個示例所示)。

anyarray || anyarray → anyarray
ARRAY[1,2,3] || ARRAY[4,5,6,7] → {1,2,3,4,5,6,7}
ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]] → {{1,2,3},{4,5,6},{7,8,9}}
  1. 將元素連接到數組的前面(數組必須為空或一維的[one-dimensional])。

anyelement || anyarray → anyarray
3 || ARRAY[4,5,6] → {3,4,5,6}
  1. 將元素連接到數組的末尾(數組必須為空或一維的[one-dimensional])。

anyarray || anyelement → anyarray
ARRAY[4,5,6] || 7 → {4,5,6,7}

函數

  1. 向一個數組的末端追加一個元素(等同于 anyarray || anyelement 操作符)。

array_append ( anyarray, anyelement ) → anyarray
array_append(ARRAY[1,2], 3) → {1,2,3}
  1. 連接兩個數組(等同于 anyarray || anyarray 操作符)。

array_cat ( anyarray, anyarray ) → anyarray
array_cat(ARRAY[1,2,3], ARRAY[4,5]) → {1,2,3,4,5}
  1. 返回數組維度的文本表示形式。

array_dims ( anyarray ) → text
array_dims(ARRAY[[1,2,3], [4,5,6]]) → [1:2][1:3]
  1. 返回一個包含給定值的拷貝的數組,其維數與第二個參數指定的長度相同。 可選的第三個參數提供每個維度的下界值(默認為全部為1)。

array_fill ( anyelement, integer[] [, integer[] ] ) → anyarray
array_fill(11, ARRAY[2,3]) → {{11,11,11},{11,11,11}}
array_fill(7, ARRAY[3], ARRAY[2]) → [2:4]={7,7,7}
  1. 返回請求的數組維度的長度。

array_length ( anyarray, integer ) → integer
array_length(array[1,2,3], 1) → 3
  1. 返回請求的數組維度的下界。

array_lower ( anyarray, integer ) → integer
array_lower('[0:2]={1,2,3}'::integer[], 1) → 0
  1. 返回數組的維度數。

array_ndims ( anyarray ) → integer
array_ndims(ARRAY[[1,2,3], [4,5,6]]) → 2
  1. 返回陣列中第二個參數中第一次發生的下標,如果它不存在,則返回 NULL。 如果給出了第三個參數,則搜索從該下標開始。數組必須是一維的。比較是使用 IS NOT DISTINCT FROM 語義進行的,所以可以搜索 NULL。

array_position ( anyarray, anyelement [, integer ] ) → integer
array_position(ARRAY['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], 'mon') → 2
  1. 返回作為第一個參數的數組中第二個參數所有出現的下標的數組。數組必須是一維的。使用 IS NOT DISTINCT FROM 語義完成比較,所以可以搜索 NULL。 只有當數組為 NULL 時才返回 NULL;如果在數組中沒有找到該值,則返回空數組。

array_positions ( anyarray, anyelement ) → integer[]
array_positions(ARRAY['A','A','B','A'], 'A') → {1,2,4}
  1. 在數組的開頭添加一個元素(等同于 anyelement || anyarray 操作符)。

array_prepend ( anyelement, anyarray ) → anyarray
array_prepend(1, ARRAY[2,3]) → {1,2,3}
  1. 從數組中移除與給定值相等的所有元素。數組必須是一維的。使用 IS NOT DISTINCT FROM 語義完成比較,所以可以刪除 NULL。

array_remove ( anyarray, anyelement ) → anyarray
array_remove(ARRAY[1,2,3,2], 2) → {1,3}
  1. 將等于第二個參數的每個數組元素替換為第三個參數。

array_replace ( anyarray, anyelement, anyelement ) → anyarray
array_replace(ARRAY[1,2,5,4], 5, 3) → {1,2,3,4}
  1. 將每個數組元素轉換為它的文本表現形式,并連接由 delimiter 符字符串分隔的元素。 如果給出了 null_string 且不為 NULL,則 NULL 數組項由該字符串表示;否則,它們將被省略。

array_to_string ( array anyarray, delimiter text [, null_string text ] ) → text
array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*') → 1,2,3,*,5
  1. 返回請求的數組維度的上界。

array_upper ( anyarray, integer ) → integer
array_upper(ARRAY[1,8,3,7], 1) → 4
  1. 返回數組中元素的總數,如果數組為空則返回 0。

cardinality ( anyarray ) → integer
cardinality(ARRAY[[1,2],[3,4]]) → 4
  1. 在出現分隔符時拆分字符串,并將剩余數據形成文本數組。 如果分隔符為 NULL,則字符串中的每個字符將成為數組中的單獨元素。 如果分隔符為空字符串,則該字符串視為單個字段。 如果提供了 null_string 且不為 NULL,那么匹配該字符串的字段將被轉換為 NULL 項。

string_to_array ( string text, delimiter text [, null_string text ] ) → text[]
string_to_array('xx~~yy~~zz', '~~', 'yy') → {xx,NULL,zz}
  1. 將數組展開為一組行。

unnest ( anyarray ) → setof anyelement
unnest(ARRAY[1,2]) →
 1
 2
  1. 將多個數組(可能是不同的數據類型)展開為一組行。 如果數組的長度不完全相同,那么較短的數組將用 NULL 填充。 這只在查詢的 FROM 子句中允許。

unnest ( anyarray, anyarray [, ... ] ) → setof anyelement, anyelement [, ... ]
select * from unnest(ARRAY[1,2], ARRAY['foo','bar','baz']) as x(a,b) →
 a |  b
---+-----
 1 | foo
 2 | bar
   | baz