用于处理字典的函数
对于使用 DDL 查询 创建的字典,dict_name 参数必须完整写为 <database>.<dict_name>。否则,将使用当前数据库。
有关连接和配置字典的更多信息,请参阅 Dictionaries。
示例字典
本节中的示例使用以下字典。您可以在 ClickHouse 中创建这些字典,以便运行后文所述函数的示例。
用于 dictGet<T> 和 dictGet<T>OrDefault 函数的示例字典
用于 dictGetAll 的示例字典
创建一个表来存储 regexp tree 字典的数据:
向表中插入数据:
创建 regexp tree 字典:
范围键字典示例
创建输入表:
向输入表中插入数据:
创建字典:
复合键字典示例
创建源表:
向源表中插入数据:
创建字典:
层级字典示例
创建源表:
向源表中插入数据:
创建字典:
dictGet
自 v18.16 版本引入
从字典中检索值。
语法
参数
dict_name— 字典名称。Stringattr_names— 字典中列的名称,或由列名组成的元组。String或Tuple(String)id_expr— 键值。返回 UInt64/Tuple(T) 的表达式。UInt64或Tuple(T)
返回值
如果找到键,则返回与 id_expr 对应的字典属性的值。
如果未找到键,则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
示例
获取单个属性
多个属性
dictGetAll
引入于:v23.5
将字典属性值转换为 All 数据类型,与字典配置无关。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetChildren
自 v21.4 引入
返回第一层子节点的索引数组。它是 dictGetHierarchy 的逆运算。
语法
参数
dict_name— 字典名称。Stringkey— 要检查的键。const String
返回值
返回该键的第一层子节点。Array(UInt64)
示例
获取字典的第一层子节点
dictGetDate
自 v1.1 引入
将字典属性值转换为 Date 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。一个返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetDateOrDefault
自 v1.1 引入
将字典属性值转换为 Date 数据类型,而不受字典配置影响;如果未找到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的默认值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetDateTime
自 v1.1 版本引入。
将字典属性值转换为 DateTime 数据类型,而不受字典配置方式的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。一个返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性的值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetDateTimeOrDefault
引入版本:v1.1
将字典属性值转换为 DateTime 数据类型(无论字典如何配置),如果未找到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetDescendants
引入自:v21.4
返回所有后代,相当于递归调用 dictGetChildren 函数 level 次。
语法
参数
dict_name— 字典名称。Stringkey— 要检查的键。const Stringlevel— 要检查的层级。层级深度。如果level = 0,则返回直到最深层级的所有后代。UInt8
返回值
返回该键的所有后代。Array(UInt64)
示例
获取字典第一层级的子节点
dictGetFloat32
自 v1.1 起引入
无论字典配置如何,都将字典属性值转换为 Float32 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列(属性)的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetFloat32OrDefault
引入版本:v1.1
将字典属性值转换为 Float32 数据类型(无论字典如何配置),如果未找到该键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetFloat64
自 v1.1 引入
将字典属性的值转换为 Float64 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中属性(列)的名称。String或Tuple(String)id_expr— 键的值。一个返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetFloat64OrDefault
自 v1.1 版本引入
将字典属性值转换为 Float64 数据类型,而不受字典配置影响;如果未找到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典列的名称。String或Tuple(String)id_expr— 键。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetHierarchy
自 v1.1 引入
创建一个数组,包含层次结构字典中某个 key 的所有父节点。
语法
参数
dict_name— 字典名称。Stringkey— 键值。const String
返回值
返回该键对应的所有父节点。Array(UInt64)
示例
获取某个键的层级结构
dictGetIPv4
引入版本:v1.1
将字典属性的值转换为 IPv4 数据类型,无论字典如何配置。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。一个返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值;
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值,或该值与属性数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetIPv4OrDefault
引入自:v23.1
将字典属性值转换为 IPv4 数据类型,而不受字典配置影响;若未找到该键,则返回指定的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键等于id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetIPv6
自 v23.1 起引入
将字典属性的值转换为 IPv6 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetIPv6OrDefault
自 v23.1 引入
将字典属性值转换为 IPv6 数据类型,而不受字典配置影响;如果未找到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetInt16
自 v1.1 起引入
将字典属性值转换为 Int16 数据类型,不受字典配置影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列(属性)的名称。String或Tuple(String)id_expr— 键值。一个返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetInt16OrDefault
自 v1.1 起提供
将字典属性值转换为 Int16 数据类型,不受字典配置影响;如果未找到指定键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回字典中与 id_expr 对应的属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetInt32
自 v1.1 引入
将字典属性值转换为 Int32 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetInt32OrDefault
引入版本:v1.1
将字典属性值转换为 Int32 数据类型,而不受字典配置影响;如果未找到该键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回通过参数 default_value_expr 传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetInt64
自 v1.1 起引入
将字典的属性值转换为 Int64 数据类型,而不受字典配置方式的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列(属性)的名称。String或Tuple(String)id_expr— 键值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetInt64OrDefault
自 v1.1 起引入
将字典属性值转换为 Int64 数据类型(无论字典如何配置),如果未找到该键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回传入的 default_value_expr 参数的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetInt8
引入版本:v1.1
将字典属性值转换为 Int8 数据类型,无论字典如何配置。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析该属性的值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetInt8OrDefault
引入于:v1.1
将字典属性值转换为 Int8 数据类型,不受字典配置影响;如果找不到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetKeys
引入版本:v25.12
返回字典中属性值等于指定值的键(或键集合)。这是在单个属性上的函数 dictGet 的反向操作。
使用设置项 max_reverse_dictionary_lookup_cache_size_bytes 来限制每个查询中 dictGetKeys 使用的反向查找缓存大小。
该缓存为每个属性值存储序列化后的键元组,以避免在同一查询中重复扫描字典。
该缓存不会在不同查询之间持久化。当达到上限时,将按最近最少使用(LRU)策略淘汰条目。
在处理大型字典且输入基数较低、工作集可以放入缓存时效果最佳。将其设置为 0 可禁用缓存。
语法
参数
dict_name— 字典名称。Stringattr_name— 要匹配的属性名。Stringvalue_expr— 用于与属性值进行匹配的值。Expression
返回值
对于单键字典:返回属性值等于 value_expr 的键数组。对于多键字典:返回属性值等于 value_expr 的键元组数组。如果字典中不存在属性值为 value_expr 的记录,则返回空数组。如果 ClickHouse 无法解析属性值,或该值无法转换为该属性的数据类型,则会抛出异常。
示例
示例用法
dictGetOrDefault
自 v18.16 起引入
用于从字典中获取值;如果未找到指定键,则返回默认值。
语法
参数
dict_name— 字典名称。Stringattr_names— 字典中列的名称,或列名构成的元组。String或Tuple(String)id_expr— 键。返回 UInt64/Tuple(T) 的表达式。UInt64或Tuple(T)default_value— 当未找到键时要返回的默认值。其类型必须与该属性的数据类型匹配。
返回值
如果找到了键,则返回与 id_expr 对应的字典属性值。
如果未找到键,则返回提供的 default_value。
示例
获取带默认值的属性值
dictGetOrNull
引入版本:v21.4
从字典中获取值,如果未找到该键则返回 NULL。
语法
参数
dict_name— 字典名称。字符串字面量。 -attr_name— 要获取的列名。字符串字面量。 -id_expr— 键值。返回字典键类型值的表达式。
返回值
如果找到键,则返回与 id_expr 对应的字典属性的值。
如果未找到键,则返回 NULL。
示例
使用范围键字典的示例
dictGetString
自 v1.1 起提供
将字典属性值转换为 String 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetStringOrDefault
自 v1.1 起引入
将字典属性值转换为 String 数据类型,而不受字典配置影响;如果未找到指定键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt16
引入于:v1.1
将字典属性值转换为 UInt16 数据类型,不受字典配置影响。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt16OrDefault
自 v1.1 起提供
将字典属性值转换为 UInt16 数据类型,而不受字典配置的影响;如果未找到该键,则返回指定的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列(属性)的名称。String或Tuple(String)id_expr— 键值表达式。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不存在以id_expr为键的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetUInt32
引入版本:v1.1
将字典的属性值转换为 UInt32 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。一个返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值;
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果无法解析属性的值,或该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
示例
用法示例
dictGetUInt32OrDefault
引入版本:v1.1
将字典属性值转换为 UInt32 数据类型,而不受字典配置影响;如果未找到该 key,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含具有id_expr键的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt64
自 v1.1 版本引入
将字典属性值转换为 UInt64 数据类型,而不受字典配置的影响。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值;
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析该属性的值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt64OrDefault
自 v1.1 引入
将字典属性值转换为 UInt64 数据类型,而不受字典配置影响;如果未找到该键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt8
自 v1.1 版本引入
将字典属性的值转换为 UInt8 数据类型,与字典配置无关。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列(属性)的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值;否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUInt8OrDefault
自 v1.1 版本引入
将字典属性值转换为 UInt8 数据类型,而不受字典配置影响;如果未找到键,则返回提供的默认值。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含具有id_expr键的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictGetUUID
引入于:v1.1
将字典属性值转换为 UUID 数据类型,无论字典如何配置。
语法
参数
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组类型值的表达式(取决于字典配置)。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例
使用示例
dictGetUUIDOrDefault
自 v1.1 起引入
将字典属性值转换为 UUID 数据类型,且与字典的具体配置无关;如果未找到该键,则返回提供的默认值。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键的值。返回字典键类型的值或元组值的表达式(取决于字典配置)。Expression或Tuple(T)default_value_expr— 当字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例
用法示例
dictHas
引入版本:v1.1
检查给定键是否存在于字典中。
语法
参数
dict_name— 字典名称。Stringid_expr— 键的值。const String
返回值
如果键存在则返回 1,否则返回 0。UInt8
示例
检查字典中某个键是否存在
dictIsIn
引入自:v1.1
在字典的整个层级链中检查某个键的祖先关系。
语法
参数
dict_name— 字典名称。Stringchild_id_expr— 要检查的键。Stringancestor_id_expr—child_id_expr键的假定祖先(节点)。const String
返回值
如果 child_id_expr 不是 ancestor_id_expr 的子节点,则返回 0;如果 child_id_expr 是 ancestor_id_expr 的子节点,或与 ancestor_id_expr 相同,则返回 1。UInt8
示例
检查层级关系