Arrays 数组_上限和数组_长度之间有功能上的区别吗?
这两个数组函数上的postgres文档非常弱 我尝试了两个函数的几种不同方式,它们似乎返回相同的结果Arrays 数组_上限和数组_长度之间有功能上的区别吗?,arrays,postgresql,Arrays,Postgresql,这两个数组函数上的postgres文档非常弱 我尝试了两个函数的几种不同方式,它们似乎返回相同的结果 SELECT array_length(array[[1, 2], [3, 4], [5, 6]], 1); SELECT array_upper(array[[1, 2], [3, 4], [5, 6]], 1); SELECT array_length(array[[1, 2], [3, 4], [5, 6]], 2); SELECT array_upper(array[[1, 2], [
SELECT array_length(array[[1, 2], [3, 4], [5, 6]], 1);
SELECT array_upper(array[[1, 2], [3, 4], [5, 6]], 1);
SELECT array_length(array[[1, 2], [3, 4], [5, 6]], 2);
SELECT array_upper(array[[1, 2], [3, 4], [5, 6]], 2);
是的,有区别。默认情况下,PostgreSQL数组下标从1开始,但: 默认情况下,PostgreSQL对数组使用基于一的编号约定,即
n
元素数组以array[1]
开始,以array[n]
结束[…]
下标赋值允许创建不使用基于一的下标的数组。例如,可以分配给
myarray[-2:7]
以创建一个下标值从-2到7的数组
[…]
默认情况下,数组维度的下限索引值设置为1。要使用其他下限表示数组,可以在写入数组内容之前显式指定数组下标范围
通常,您需要使用,而不是假设数组将从1
开始,以array\u长度(a,n)
结束,谢谢-这很好。因此,这条语句似乎是正确的:array\u length
返回数组元素的绝对值,而不管数组的开始/结束值是多少?array\u length
返回“请求的数组维度的长度”,因此它不关心数组的开始和结束位置,只关心它有多少个条目。