- 类别:
半结构化和结构化数据函数 (映射)
MAP_CONTAINS_KEY¶
确定指定的 MAP 是否包含指定的键。
语法¶
MAP_CONTAINS_KEY( <key> , <map> )
实参¶
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;
+--------------+
| CONTAINS_KEY |
|--------------|
| True |
+--------------+
该函数搜索 k1
键,但在映射中找不到该键:
SELECT MAP_CONTAINS_KEY(
'k1',{'ka':'va','kb':'vb','kc':'vc'}::MAP(VARCHAR,VARCHAR))
AS contains_key;
+--------------+
| CONTAINS_KEY |
|--------------|
| False |
+--------------+
SELECT 语句传入的键使用的类型与映射中的键不同:
SELECT MAP_CONTAINS_KEY(
'k1',{'1':'va','2':'vb','3':'vc'}::MAP(NUMBER,VARCHAR))
AS contains_key;
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))