psql 数组操作

函数 返回类型 描述 例子 结果
array_append(anyarray, anyelement) anyarray 向一个数组的末端追加一个元素 array_append(ARRAY[1,2], 3) {1,2,3}
array_cat(anyarray, anyarray) anyarray 连接两个数组 array_cat(ARRAY[1,2,3], ARRAY[4,5]) {1,2,3,4,5}
array_ndims(anyarray) int 返回数组的维度数 array_ndims(ARRAY[[1,2,3], [4,5,6]]) 2
array_dims(anyarray) text 返回数组的维度的文本表示 array_dims(ARRAY[[1,2,3], [4,5,6]]) [1:2][1:3]
array_fill(anyelement, int[], [, int[]]) anyarray 返回一个用提供的值和维度初始化好的数组,可以选择下界不为 1 array_fill(7, ARRAY[3], ARRAY[2]) [2:4]={7,7,7}
array_length(anyarray, int) int 返回被请求的数组维度的长度 array_length(array[1,2,3], 1) 3
array_lower(anyarray, int) int 返回被请求的数组维度的下界 array_lower(’[0:2]={1,2,3}’::int[], 1) 0
array_position(anyarray, anyelement [, int]) int 返回数组中第二个参数第一次出现的下标。 起始于第三个参数或第一个元素指示的元素位置(数组必须是一维的) array_position(ARRAY[‘sun’,‘mon’,‘tue’,‘wed’,‘thu’,‘fri’,‘sat’], ‘mon’) 2
array_positions(anyarray, anyelement) int[] 返回作为第一个参数的数组中第二个参数出现的数组下标(数组必须是一维的) array_positions(ARRAY[‘A’,‘A’,‘B’,‘A’], ‘A’) {1,2,4}
array_prepend(anyelement, anyarray) anyarray 向一个数组的首部追加一个元素 array_prepend(1, ARRAY[2,3]) {1,2,3}
array_remove(anyarray, anyelement) anyarray 从数组中移除所有等于给定值的所有元素(数组必须是一维的) array_remove(ARRAY[1,2,3,2], 2) {1,3}
array_replace(anyarray, anyelement, anyelement) anyarray 将每一个等于给定值的数组元素替换成一个新值 array_replace(ARRAY[1,2,5,4], 5, 3) {1,2,3,4}
array_to_string(anyarray, text [, text]) text 使用提供的定界符和可选的空串连接数组元素 array_to_string(ARRAY[1, 2, 3, NULL, 5], ‘,’, ‘*’) 1,2,3,*,5
array_upper(anyarray, int) int 返回被请求的数组维度的上界 array_upper(ARRAY[1,8,3,7], 1) 4
cardinality(anyarray) int 返回数组中元素的总数,如果数组为空则返回 0 cardinality(ARRAY[[1,2],[3,4]]) 4
string_to_array(text, text [, text]) text[] 使用提供的定界符和可选的空串将字符串划分成数组元素 string_to_array(‘xx^yy^zz’, ‘^’, ‘yy’) {xx,NULL,zz}
unnest(anyarray) setof anyelement 将一个数组扩展成一组行 unnest(ARRAY[1,2])

参考文献:

http://www.postgres.cn/docs/10/functions-array.html

你可能感兴趣的:(SQL)