ARRAY[] 是在表达式中用于生成数组的构造函数。
ARRAY[] 在 PostgreSQL 7.4 中被添加。
示例
用于 ARRAY[] 的简单用法示例,创建一个一维数组
postgres=# SELECT ARRAY[1,2,3];
array
---------
{1,2,3}
(1 row)
可以通过嵌套 ARRAY[] 调用来创建多维数组,这里是二维数组
postgres=# SELECT ARRAY[ ARRAY[1,2,3], ARRAY[4,5,6] ];
array
-------------------
{{1,2,3},{4,5,6}}
(1 row)
数组的每个维度必须包含相同数量的元素
postgres=# SELECT ARRAY[ ARRAY[1,2,3], ARRAY[4,5] ]; ERROR: multidimensional arrays must have array expressions with matching dimensions
数组的每个维度必须解析为共同的数据类型
postgres=# SELECT ARRAY[ ARRAY[1,2,3], ARRAY['a','b','c'] ]; ERROR: ARRAY could not convert type text[] to integer[] LINE 1: SELECT ARRAY[ ARRAY[1,2,3], ARRAY['a','b','c'] ];
如果可以明确地解析,所提供的值将解析为共同的数据类型
postgres=# SELECT ARRAY[1,'2',3];
array
---------
{1,2,3}
(1 row)
postgres=# SELECT ARRAY['a',2,3];
ERROR: invalid input syntax for type integer: "a"
LINE 1: SELECT ARRAY['a',2,3];
可以提供显式转换来指定数组类型
postgres=# SELECT ARRAY['a',2,3]::text[];
array
---------
{a,2,3}
(1 row)
参考资料
- PostgreSQL 文档: 数组构造函数
