21.3. Функции для работы с типами-объединениями #

union_extract(union_col, tag) returns duckdb.unresolved_type #

Извлекает значение из типа-объединения за счёт указания имени тега члена, к которому необходимо получить доступ.

Пример 21.5.

-- Извлечь строковое значение, если объединение содержит строку
SELECT union_extract(my_union_column, 'string') FROM my_table;

-- Извлечь целочисленное значение из объединения
SELECT union_extract(data_field, 'integer') AS extracted_int FROM mixed_data;

Обязательные параметры:

Имя

Тип

Описание

union_col

duckdb.union or duckdb.unresolved_type

Столбец-объединение, из которого необходимо получить значение

tag

text

Имя тега извлекаемого члена объединения

union_tag(union_col) returns duckdb.unresolved_type #

Возвращает имя тега текущего активного члена в типе‑объединении.

Пример 21.6.

-- Получить активный тег для каждой строки
SELECT union_tag(my_union_column) AS active_type FROM my_table;

-- Отфильтровать строки, используя тег объединения
SELECT * FROM my_table WHERE union_tag(data_field) = 'string';

Обязательные параметры:

Имя

Тип

Описание

union_col

duckdb.union or duckdb.unresolved_type

Столбец-объединение, из которого требуется получить тег