-`dict_name` — Название словаря. [String literal](../syntax.md#syntax-string-literal).
-`attr_name` — Название колонки словаря. [String literal](../syntax.md#syntax-string-literal).
-`id_expr` — Значение ключа. [Expression](../syntax.md#syntax-expressions) Возвращает значение типа [UInt64](../../data_types/int_uint.md) или [Tuple](../../data_types/tuple.md) в зависимости от конфигурации словаря.
-`default_value_expr` — Значение которое возвращается, если словарь не содержит колонку с ключом `id_expr`. [Expression](../syntax.md#syntax-expressions) возвращает значение такого же типа, что и у атрибута `attr_name`.
## dictGetString
`dictGetT('dict_name', 'attr_name', id)`
- получить из словаря dict_name значение атрибута attr_name по ключу id.
`dict_name` и `attr_name` - константные строки.
`id` должен иметь тип UInt64.
Если ключа `id` нет в словаре - вернуть значение по умолчанию, заданное в описании словаря.
**Возвращаемое значение**
## dictGetTOrDefault
- Если ClickHouse успешно обрабатывает атрибут в соотвествии с указаным типом [attribute's data Тип](../dicts/external_dicts_dict_structure.md#ext_dict_structure-attributes), функция возвращает значение атрибута словаря для заданного `id_expr`.
- Если запращиваемого `id_expr` не оказалось в словаре:
`dictGetT('dict_name', 'attr_name', id, default)`
- `dictGet` возвратит содержимое элемента `<null_value>` определенного в настройках словаря.
- `dictGetOrDefault` вернет значение переданного `default_value_expr` параметра.
Аналогично функциям `dictGetT`, но значение по умолчанию берётся из последнего аргумента функции.
ClickHouse бросает исключение, если не может обработать значение атрибута или значение не сопоставимо с типом атрибута.
## dictIsIn
`dictIsIn('dict_name', child_id, ancestor_id)`
- для иерархического словаря dict_name - узнать, находится ли ключ child_id внутри ancestor_id (или совпадает с ancestor_id). Возвращает UInt8.
**Примеры использования**
Создайте файл `ext-dict-text.csv` со следующим содержимым:
- для иерархического словаря dict_name - вернуть массив ключей словаря, начиная с id и продолжая цепочкой родительских элементов. Возвращает Array(UInt64).
## dictHas
`dictHas('dict_name', id)`
- проверить наличие ключа в словаре. Возвращает значение типа UInt8, равное 0, если ключа нет и 1, если ключ есть.
-`dict_name` — Название словаря. [String literal](../syntax.md#syntax-string-literal).
-`child_id_expr` — Ключ который должен быть проверен. [Expression](../syntax.md#syntax-expressions) возвращает значение типа [UInt64](../../data_types/int_uint.md).
-`ancestor_id_expr` — Родительский ключ для ключа `child_id_expr`. [Expression](../syntax.md#syntax-expressions) возвращает значение типа [UInt64](../../data_types/int_uint.md).
**Возвращаемое значение**
- 0, если `child_id_expr` не является потомком для `ancestor_id_expr`.
- 1, если `child_id_expr` является потомком для `ancestor_id_expr` или если `child_id_expr` равен `ancestor_id_expr`.
Тип: `UInt8`.
## Другие функции {#ext_dict_functions-other}
ClickHouse поддерживает специализированные функции для конвертации значений атрибутов словаря к определенному типу, независимо от настроек словаря.
-`dict_name` — Название словаря. [String literal](../syntax.md#syntax-string-literal).
-`attr_name` — Название колонки словаря. [String literal](../syntax.md#syntax-string-literal).
-`id_expr` — Значение ключа. [Expression](../syntax.md#syntax-expressions) возвращает значение типа [UInt64](../../data_types/int_uint.md).
-`default_value_expr` — Значение которое возвращается, если словарь не содержит строку с ключом `id_expr`. [Expression](../syntax.md#syntax-expressions) возвращает значение с таким же типом, что и тип атрибута `attr_name`.
**Возвращаемое значение**
- Если ClickHouse успешно обрабатывает атрибут в соотвествии с указаным типом [attribute's data Тип](../dicts/external_dicts_dict_structure.md#ext_dict_structure-attributes), функция возвращает значение атрибута словаря с заданым ключом `id_expr`.
- Если запращиваемого `id_expr` не оказалось в словаре:
- `dictGet[Тип]` возвратит содержимое элемента `<null_value>` определенного в настройках словаря.
- `dictGet[Тип]OrDefault` вернет значение переданного `default_value_expr` параметра.
ClickHouse бросает исключение, если не может обработать значение атрибута или значение не сопоставимо с типом атрибута