PostgreSQL中处理数组的函数大全

发表时间: 2024-03-31 08:15

PostgreSQL数据库中数组可用于输入多个数值,每个数据类型都有相应的数组。例如,整数类型的数组 a int[],字符类型的数组 c character[]。如果用户已经定义了数据的类型,那么PostgreSQL将自动创建相应的数组。

PostgreSQL相关的数组函数

PostgreSQL的数组有以下相关函数:

  1. Array_append() function
  2. Array_cat() function
  3. Array_ndims() function
  4. Array_dims() function
  5. Array_fill() function
  6. Array_length() function
  7. Array_lower() function
  8. Array_prepend() function
  9. Array_remove() function
  10. Array_replace() function
  11. Array_to_string() function
  12. Array_upper() function
  13. String_to_array function
  14. Unset function

下面介绍每个函数的使用方法

Array_append() 函数

该函数用于把一个元素追加到数组的末尾,用例如下:

SELECT array_append(array[1, 2, 3, 4, 5], 6);

运行结果如下图:

Array_cat() 函数

直接连接两个数组,用例如下:

SELECT array_cat(ARRAY[11, 12, 13, 14, 15], ARRAY[16, 17, 18, 19,20]);

运行结果如下图:

Array_ndims() 函数

返回数组的维数,用例如下:

SELECT array_ndims(ARRAY[[11, 12, 13, 14, 15], [16, 17, 18, 19,20]]);

运行结果如下图:

Array_dims() 函数

返回数组表达式的行数与列数,用例如下:

SELECT array_dims(ARRAY[[11, 12, 13, 14, 15], [16, 17, 18, 19,20]]);

运行结果如下图:

Array_fill() 函数

返回初始化的维数与初始值,用例如下:

SELECT array_fill(20, ARRAY[15], ARRAY[10]);

运行结果如下图:

该示例表示数组从第10个元素开始填充15个数值为20的元素。

Array_length() 函数

该函数返回数组的长度,用例如下:

SELECT array_length(array[11, 12, 13, 14, 15], 1);

运行结果如下图:

Array_lower() 函数

返回数组的左边界值,用例如下:

SELECT array_lower('[0:4]={11, 12, 13, 14, 15}'::int[], 1);

运行结果如下图:

Array_prepend() 函数

该函数用于把一个元素插入到数组的开头,用例如下:

SELECT array_prepend(6, array[1, 2, 3, 4, 5]);

运行结果如下图:

Array_remove() 函数

删除数组中的一个或多个元素,用例如下:

SELECT array_remove(ARRAY[11, 12, 13, 14, 15, 11, 11], 11);

运行结果如下图:

Array_replace() 函数

替换数组中的一个或多个元素,用例如下:

SELECT array_replace(ARRAY[11, 12, 13, 14, 15, 11, 11], 11, 21);

运行结果如下图:

Array_to_string() 函数

把数组转换成字符串,用例如下:

SELECT array_to_string(ARRAY[11, 12, 13, NULL, 15], ',', '*');

运行结果如下图:

Array_upper() 函数

返回数组的右边界值,用例如下:

SELECT array_upper(ARRAY[11, 12, 13, 14, 15], 1);

运行结果如下图:

String_to_array() 函数

把字符串转换成数组,用例如下:

SELECT string_to_array('AB~^~CD~^~EF', '~^~', 'XY');

运行结果如下图:

Unset() 函数

把数组转换为行记录,用例如下:

SELECT unnest(ARRAY[11, 12, 13, 14, 15]);

运行结果如下图:





(本文完)