用于处理字典的函数
对于使用 DDL 查询 创建的字典,必须完全指定 dict_name 参数,例如 <database>.<dict_name>。否则,将使用当前数据库。
有关连接和配置字典的信息,请参阅 字典。
示例字典
本节中的示例使用以下字典。您可以将它们创建在 ClickHouse 中以运行下面描述的函数的示例。
用于 dictGet<T> 和 dictGet<T>OrDefault 函数的示例字典
用于 dictGetAll 的示例字典
创建表以存储正则表达式树字典的数据
将数据插入到表中
创建正则表达式树字典
示例范围键字典
创建输入表
将数据插入到输入表中
创建字典
示例复杂键字典
创建源表
将数据插入到源表中
创建字典
示例分层字典
创建源表
将数据插入到源表中
创建字典
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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetDateTime
引入于:v1.1
无论字典配置如何,将字典属性值转换为 DateTime 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetFloat64
引入于:v1.1
无论字典配置如何,将字典属性值转换为 Float64 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetHierarchy
引入于:v1.1
在 分层字典 中,创建一个数组,其中包含键的所有父项。
语法
参数
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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetIPv6
引入版本: v23.1
无论字典配置如何,将字典属性值转换为 IPv6 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetInt16
引入于:v1.1
无论字典配置如何,将字典属性值转换为 Int16 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetInt32
引入于:v1.1
无论字典配置如何,将字典属性值转换为 Int32 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetInt64
引入于:v1.1
无论字典配置如何,将字典属性值转换为 Int64 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetInt8
引入于:v1.1
无论字典配置如何,将字典属性值转换为 Int8 数据类型。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUInt16
引入于:v1.1
将字典属性值转换为 UInt16 数据类型,无论字典配置如何。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUInt32
引入于:v1.1
将字典属性值转换为 UInt32 数据类型,无论字典配置如何。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUInt32OrDefault
引入于:v1.1
将字典属性值转换为 UInt32 数据类型,无论字典配置如何,或者如果未找到键,则返回提供的默认值。
语法
参数
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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUInt64
引入于:v1.1
将字典属性值转换为 UInt64 数据类型,无论字典配置如何。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUInt8
引入于:v1.1
将字典属性值转换为 UInt8 数据类型,无论字典配置如何。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 ClickHouse 会抛出异常。
示例
使用示例
dictGetUUID
引入于:v1.1
将字典属性值转换为 UUID 数据类型,无论字典配置如何。
语法
参数
dict_name— 字典的名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值(取决于字典配置)的表达式。Expression或Tuple(T)
返回值
返回与 id_expr 对应的字典属性的值,否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性的值或该值与属性数据类型不匹配,则 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 无法解析属性的值或该值与属性数据类型不匹配,则 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 的子项或 child_id_expr 是 ancestor_id_expr,则返回 1。 UInt8
示例
检查层次关系