ARRAY[]
是一个用于在表达式中生成数组的构造函数。
ARRAY[]
在PostgreSQL 7.4中添加。
用法
ARRAY[]
可以用于生成一维数组,或者如果嵌套则生成多维数组。提供的数值必须解析为共同的数据类型,或者可以提供显式转换。
变更历史
- PostgreSQL 7.4
- 添加 (提交 730840c9)
示例
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文档: 数组构造函数