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 文档: 数组构造函数