--- layout: docu title: Union Functions --- | Name | Description | |:--|:-------| | [`union.tag`](#uniontag) | Dot notation serves as an alias for `union_extract`. | | [`union_extract(union, 'tag')`](#union_extractunion-tag) | Extract the value with the named tags from the union. `NULL` if the tag is not currently selected. | | [`union_value(tag := any)`](#union_valuetag--any) | Create a single member `UNION` containing the argument value. The tag of the value will be the bound variable name. | | [`union_tag(union)`](#union_tagunion) | Retrieve the currently selected tag of the union as an [Enum]({% link docs/1.3/sql/data_types/enum.md %}). | #### `union.tag`
| **Description** | Dot notation serves as an alias for `union_extract`. | | **Example** | `(union_value(k := 'hello')).k` | | **Result** | `string` | #### `union_extract(union, 'tag')`
| **Description** | Extract the value with the named tags from the union. `NULL` if the tag is not currently selected. | | **Example** | `union_extract(s, 'k')` | | **Result** | `hello` | #### `union_value(tag := any)`
| **Description** | Create a single member `UNION` containing the argument value. The tag of the value will be the bound variable name. | | **Example** | `union_value(k := 'hello')` | | **Result** | `'hello'::UNION(k VARCHAR)` | #### `union_tag(union)`
| **Description** | Retrieve the currently selected tag of the union as an [Enum]({% link docs/1.3/sql/data_types/enum.md %}). | | **Example** | `union_tag(union_value(k := 'foo'))` | | **Result** | `'k'` |