PostgreSQL数据库中数组可用于输入多个数值,每个数据类型都有相应的数组。例如,整数类型的数组 a int[],字符类型的数组 c character[]。如果用户已经定义了数据的类型,那么PostgreSQL将自动创建相应的数组。
PostgreSQL相关的数组函数
PostgreSQL的数组有以下相关函数:
- Array_append() function
- Array_cat() function
- Array_ndims() function
- Array_dims() function
- Array_fill() function
- Array_length() function
- Array_lower() function
- Array_prepend() function
- Array_remove() function
- Array_replace() function
- Array_to_string() function
- Array_upper() function
- String_to_array function
- Unset function
下面介绍每个函数的使用方法:
该函数用于把一个元素追加到数组的末尾,用例如下:
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]);
运行结果如下图:

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/73780
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!