类别:

半结构化和结构化数据函数 (类型转换)

AS_ARRAY

将 VARIANT 值转换为数组。

另请参阅:

AS_<object_type>AS_OBJECT

语法

AS_ARRAY( <variant_expr> )
Copy

实参

variant_expr

VARIANT 类型值计算的表达式。

使用说明

  • 如果 variant_expr 不包含 ARRAY 类型的值,则函数返回 NULL。

示例

这显示了该函数的使用方法:

创建表和数据:

CREATE TABLE multiple_types (
    array1 VARIANT,
    array2 VARIANT,
    boolean1 VARIANT,
    char1 VARIANT,
    varchar1 VARIANT,
    decimal1 VARIANT,
    double1 VARIANT,
    integer1 VARIANT,
    object1 VARIANT
    );
INSERT INTO multiple_types 
     (array1, array2, boolean1, char1, varchar1, 
      decimal1, double1, integer1, object1)
   SELECT 
     TO_VARIANT(TO_ARRAY('Example')), 
     TO_VARIANT(ARRAY_CONSTRUCT('Array-like', 'example')), 
     TO_VARIANT(TRUE), 
     TO_VARIANT('X'), 
     TO_VARIANT('I am a real character'), 
     TO_VARIANT(1.23::DECIMAL(6, 3)),
     TO_VARIANT(3.21::DOUBLE),
     TO_VARIANT(15),
     TO_VARIANT(TO_OBJECT(PARSE_JSON('{"Tree": "Pine"}')))
     ;
Copy

现在运行查询。存储为 VARIANT 值的 True 数组将转换回 ARRAY 值。但是,列 Object1 中的值(若不是 True ARRAY)将转换为 NULL。

SELECT 
       AS_ARRAY(array1) AS "ARRAY1",
       AS_ARRAY(array2) AS "ARRAY2",
       AS_OBJECT(object1) AS "OBJECT",
       AS_ARRAY(object1) AS "OBJECT AS ARRAY"
  FROM multiple_types;
+-------------+-----------------+------------------+-----------------+
| ARRAY1      | ARRAY2          | OBJECT           | OBJECT AS ARRAY |
|-------------+-----------------+------------------+-----------------|
| [           | [               | {                | NULL            |
|   "Example" |   "Array-like", |   "Tree": "Pine" |                 |
| ]           |   "example"     | }                |                 |
|             | ]               |                  |                 |
+-------------+-----------------+------------------+-----------------+
Copy
语言: 中文