类别:

半结构化和结构化数据函数 (映射)

MAP_CONTAINS_KEY

确定指定的 MAP 是否包含指定的键。

语法

MAP_CONTAINS_KEY( <key> , <map> )
Copy

实参

key

要查找的键。

map

要搜索的映射。

返回

  • 如果指定的映射包含指定的键,则返回 TRUE。

  • 如果指定的映射不包含指定的键,则返回 FALSE。

使用说明

  • 键表达式的类型必须与映射的键的类型匹配。如果类型为 VARCHAR,则类型可以是不同的长度。

  • 对于 NULL 输入,输出为 NULL。

示例

该函数搜索 k1 键,并在映射中找到该键:

SELECT MAP_CONTAINS_KEY(
  'k1',{'k1':'v1','k2':'v2','k3':'v3'}::MAP(VARCHAR,VARCHAR))
  AS contains_key;
Copy
+--------------+
| CONTAINS_KEY |
|--------------|
| True         |
+--------------+

该函数搜索 k1 键,但在映射中找不到该键:

SELECT MAP_CONTAINS_KEY(
  'k1',{'ka':'va','kb':'vb','kc':'vc'}::MAP(VARCHAR,VARCHAR))
  AS contains_key;
Copy
+--------------+
| CONTAINS_KEY |
|--------------|
| False        |
+--------------+

SELECT 语句传入的键使用的类型与映射中的键不同:

SELECT MAP_CONTAINS_KEY(
  'k1',{'1':'va','2':'vb','3':'vc'}::MAP(NUMBER,VARCHAR))
  AS contains_key;
Copy
001065 (22023): SQL compilation error:
Function MAP_CONTAINS_KEY cannot be used with arguments of types VARCHAR(2) and map(NUMBER
(38,0), VARCHAR(16777216))
语言: 中文