跳到主要内容

MAP

描述

使用若干组键值对构造一个特定类型的 MAP<K, V>

语法

MAP( <key1> , <value1> [, <key2>, <value2> ... ])

参数

可选参数

  • <key1> 支持多种类型(参考 MAP<K, V>) 构造 map 的 key
  • <value1> 构造 map 的 value

可变参数

支持多组 key-value 参数

返回值

返回由若干组键值对构造的特定类型 MAP<K, V>

注意事项

  1. 参数个数必须为偶数个(可以为 0),否则会报错。
  2. key 参数可以出现重复,但是 Doris 会去掉重复的 key。
  3. key 可以为 NULL,多个 NULL key 会被去重。

举例

  1. 普通参数

    select map(1, "100", 0.1, 2),map(1, "100", 0.1, 2)[1];
    +-----------------------+--------------------------+
    | map(1, "100", 0.1, 2) | map(1, "100", 0.1, 2)[1] |
    +-----------------------+--------------------------+
    | {1.0:"100", 0.1:"2"} | 100 |
    +-----------------------+--------------------------+
  2. 没有参数的情况

    select map();
    +-------+
    | map() |
    +-------+
    | {} |
    +-------+
  3. NULL 参数

    select map(null, 2, 3, null);
    +-----------------------+
    | map(null, 2, 3, null) |
    +-----------------------+
    | {null:2, 3:null} |
    +-----------------------+
  4. 如果有重复的 key,会去重

    select map(1, 2, 2, 11, 1, 3, null, "null 1", null, "null 2");
    +--------------------------------------------------------+
    | map(1, 2, 2, 11, 1, 3, null, "null 1", null, "null 2") |
    +--------------------------------------------------------+
    | {2:"11", 1:"3", null:"null 2"} |
    +--------------------------------------------------------+