云数据库 GAUSSDB-数组类型:数组类型的字符串输入

时间:2024-11-01 17:13:38

数组类型的字符串输入

要把一个数组值写成一个文字常数(常量输入),将元素值用花括号括起并用逗号分隔。因此,一个数组常量的一般格式如下:

'{ val1 delim val2 delim ... }'

上述格式中的delim是元素类型的分隔符,记录在类型的pg_type表的typdelim列中。每个val可以是数组元素类型的一个常量,也可以是一个子数组。示例如下:

gaussdb=# SELECT '{1, 2, 3}'::int[] AS RESULT;
 result  
---------
 {1,2,3}
(1 row)

gaussdb=# SELECT '{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}'::int[] AS RESULT;
          result           
---------------------------
 {{1,2,3},{4,5,6},{7,8,9}}
(1 row)

在任意元素值周围可以使用双引号,并且在元素值包含逗号或花括号等一些特殊字符时必须使用双引号。

示例如下:

该示例表示有一个varchar类型的数组,且一共有7个varchar元素,元素依次为:

  • 包含一个空格的字符串
  • 值为“NULL”的字符串
  • 字符串为NULL
  • 有一个\字符的字符串
  • 有一个{字符的字符串
  • 有一个}字符的字符串有一个,字符的字符串
gaussdb=# SELECT '{" ", "NULL", null, "\\", "{", "}", ","}'::varchar[] AS RESULT;
               result               
------------------------------------
 {" ","NULL",NULL,"\\","{","}",","}
(1 row)
  • 对于数组字符串常量输入,如果数组元素值是空字符串或者包含花括号、分隔符、双引号、反斜杠、空白或者匹配关键字NULL,则这些元素输入需要使用双引号,在元素值里包含的双引号和反斜杠时需要额外添加一个反斜杠。
  • 关键字NULL不区分大小写。
  • 输入会自动跳过没有使用双引号的空白。
  • 一般不建议使用字符常量的方式构造数组数据,推荐使用ARRAY构造器。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0344.html