跳转到主要内容
对于使用 DDL 语句 创建的字典,必须完整指定 dict_name 参数,例如 <database>.<dict_name>。否则,将使用当前数据库。
有关如何连接和配置字典的信息,请参见 字典

示例字典

本节中的示例会用到以下字典。你可以在 ClickHouse 中创建这些字典, 以运行下文所述函数的示例。
创建一个表,用于存储正则表达式树字典的数据:
向表中插入数据:
创建正则表达式树字典:
创建输入表:
将数据插入输入表:
创建字典:
创建源表:
将数据插入源表:
创建字典:
创建源表:
将数据插入源表:
创建字典:

dictGet

引入版本:v18.16.0 从字典中获取值。 语法
参数
  • dict_name — 字典名称。String
  • attr_names — 字典的列名,或由列名组成的元组。StringTuple(String)
  • id_expr — 键值。返回 UInt64/Tuple(T) 的表达式。UInt64Tuple(T)
返回值 如果找到该键,则返回与 id_expr 对应的字典属性值。 如果未找到该键,则返回字典配置中为该属性指定的 <null_value> 元素内容。 示例 获取单个属性
Query
Response
多个属性
Query
Response

dictGetAll

引入版本:v23.5.0 获取正则表达式树字典中与每个键匹配的所有节点的属性值。 除返回 Array(T) 类型的值而非 T 外,此函数的行为与 dictGet 类似。 语法
参数
  • dict_name — 字典名称。 String
  • attr_names — 字典中列的名称,或列名元组。 StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。 ExpressionTuple(T)
  • limit — 可选。每个返回的值数组的最大长度。截断时,子节点优先于父节点,否则遵循 regexp tree 字典定义的列表顺序。如果未指定,则数组长度不受限制。 UInt*
返回值 返回由 attr_names 中指定的每个属性对应的、与 id_expr 相对应的字典属性值数组。 如果字典中不存在与 id_expr 对应的键,则返回空数组。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
Array(T) 示例 用法示例
Query
Response

dictGetChildren

引入版本:v21.4.0 返回一个包含第一层子项索引的数组。它与 dictGetHierarchy 互为逆变换。 语法
参数 返回值 返回该键的一级子节点。Array(UInt64) 示例 获取字典的一级子节点
Query
Response

dictGetDate

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Date 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetDateOrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Date 数据类型;如果未找到该键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回该值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetDateTime

引入版本:v1.1.0 无论字典配置如何,都将字典属性的值转换为 DateTime 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回在字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetDateTimeOrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 DateTime 数据类型;如果未找到该键,则返回所提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回该值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetDescendants

引入版本:v21.4.0 返回所有后代节点,相当于将 dictGetChildren 函数递归应用 level 次。 语法
参数
  • dict_name — 字典名称。String
  • key — 要检查的键。const String
  • level — 要检查的层级。层级级别。若 level = 0,则返回其所有后代,直到末级。UInt8
返回值 返回该键的后代。Array(UInt64) 示例 获取字典的子节点
Query
Response

dictGetFloat32

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Float32 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析该属性的值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
示例 用法示例
Query
Response

dictGetFloat32OrDefault

Introduced in: v1.1.0 将字典属性值转换为 Float32 数据类型,不受字典配置影响;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回该值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetFloat64

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Float64 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetFloat64OrDefault

引入版本:v1.1.0 将字典属性值转换为 Float64 数据类型,而不受字典配置的影响;如果未找到该键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性的值, 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetHierarchy

引入版本:v1.1.0 创建一个数组,其中包含层级字典中指定键的所有父级。 语法
参数 返回值 返回该键的父级项。Array(UInt64) 示例 获取某个键的层级关系
Query
Response

dictGetIPv4

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 IPv4 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetIPv4OrDefault

引入版本:v23.1.0 无论字典配置如何,都会将字典属性值转换为 IPv4 数据类型;如果未找到该键,则返回所提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetIPv6

引入版本:v23.1.0 无论字典配置如何,都会将字典属性值转换为 IPv6 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetIPv6OrDefault

于 v23.1.0 中引入 无论字典配置如何,都会将字典属性值转换为 IPv6 数据类型;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不存在键为 id_expr 的行时返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt16

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int16 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetInt16OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int16 数据类型;如果未找到该键,则返回所提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不存在键为 id_expr 的行,则返回该值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetInt32

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int32 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt32OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int32 数据类型;如果未找到该键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt64

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int64 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt64OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int64 数据类型;如果未找到键,则返回所提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行时返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt8

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int8 数据类型。 语法
参数 返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetInt8OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 Int8 数据类型;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetKeys

引入版本:v25.12.0 返回属性等于指定值的字典键。它是函数 dictGet 在单个属性上的逆操作。 使用设置 max_reverse_dictionary_lookup_cache_size_bytes 来限制 dictGetKeys 使用的单次查询反向查找缓存大小。 该缓存会为每个属性值存储序列化后的键 Tuple,以避免在同一查询中重复扫描字典。 该缓存不会在查询之间持久保留。达到限制后,条目会按 LRU 策略被逐出。 当字典较大、输入的基数较低且工作集能够放入缓存时,这种方式效果最佳。设为 0 可禁用缓存。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 要匹配的属性。String
  • value_expr — 与该属性进行匹配的值。Expression
返回值 对于单键字典:返回属性值等于 value_expr 的键数组。对于多键字典:返回属性值等于 value_expr 的键 Tuple 数组。如果字典中不存在与 value_expr 对应的属性值,则返回空数组。如果 ClickHouse 无法解析属性值,或者该值无法转换为该属性的数据类型,则会抛出异常。 示例 示例用法
Query
Response

dictGetOrDefault

引入版本:v18.16.0 从字典中获取值;如果未找到键,则返回默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_names — 字典中的列名,或列名组成的元组。StringTuple(String)
  • id_expr — 键值。返回 UInt64/Tuple(T) 的表达式。UInt64Tuple(T)
  • default_value — 如果未找到键则返回的默认值。其类型必须与属性的数据类型匹配。
返回值 如果找到键,则返回与 id_expr 对应的字典属性值。 如果未找到键,则返回提供的 default_value 示例 获取带默认值的值
Query
Response

dictGetOrNull

引入版本:v21.4.0 从字典中获取值;如果找不到键,则返回 NULL。 语法
参数
  • dict_name — 字典名称。String 字面量。 - attr_name — 要获取的列名。String 字面量。 - id_expr — 键值。返回字典键类型值的表达式。
返回值 如果找到该键,则返回与 id_expr 对应的字典属性值。 如果未找到该键,则返回 NULL 示例 使用范围键字典的示例
Query
Response

dictGetString

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 String 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或 Tuple 值 (取决于字典配置) 的表达式。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析该属性的值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
示例 用法示例
Query
Response

dictGetStringOrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性的值转换为 String 数据类型;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或 Tuple 值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行时返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt16

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt16 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt16OrDefault

引入于:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt16 数据类型;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 当字典中不存在键为 id_expr 的行时返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则,返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetUInt32

引入版本:v1.1.0 将字典属性值转换为 UInt32 数据类型,而不受字典配置的影响。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt32OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt32 数据类型;如果未找到键,则返回所提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则,返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt64

在 v1.1.0 中引入 无论字典配置如何,都会将字典属性值转换为 UInt64 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (具体取决于字典配置) 的表达式。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析属性值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
示例 使用示例
Query
Response

dictGetUInt64OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt64 数据类型;如果未找到键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典的列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt8

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt8 数据类型。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUInt8OrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UInt8 数据类型;如果未找到该键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典列名。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。ExpressionTuple(T)
  • default_value_expr — 如果字典中不包含键为 id_expr 的行,则返回该值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值; 否则,返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 用法示例
Query
Response

dictGetUUID

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UUID 数据类型。 语法
参数 返回值 返回与 id_expr 对应的字典属性值, 否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictGetUUIDOrDefault

引入版本:v1.1.0 无论字典配置如何,都会将字典属性值转换为 UUID 数据类型;如果未找到该键,则返回提供的默认值。 语法
参数
  • dict_name — 字典名称。String
  • attr_name — 字典中列的名称。StringTuple(String)
  • id_expr — 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。ExpressionTuple(T)
  • default_value_expr — 如果字典中不存在键为 id_expr 的行,则返回的值。ExpressionTuple(T)
返回值 返回与 id_expr 对应的字典属性值, 否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
示例 使用示例
Query
Response

dictHas

引入于:v1.1.0 检查字典中是否存在某个键。 语法
参数 返回值 如果键存在,则返回 1;否则返回 0UInt8 示例 检查字典中是否存在某个键
Query
Response

dictIsIn

在 v1.1.0 中引入 检查字典中某个键在整个层级链中的祖先节点。 语法
参数
  • dict_name — 字典名称。String
  • child_id_expr — 要检查的键。String
  • ancestor_id_exprchild_id_expr 键的假定祖先键。const String
返回值 如果 child_id_expr 不是 ancestor_id_expr 的子级,则返回 0;如果 child_id_exprancestor_id_expr 的子级,或者 child_id_expr 本身就是 ancestor_id_expr,则返回 1UInt8 示例 检查层级关系
Query
Response
最后修改于 2026年7月2日