STRUCT data type
This article describes the specifics of the
STRUCT complex data
Syntax for STRUCT
column_name STRUCT < name : type [COMMENT 'comment_string'], ... > type ::= primitive_type | complex_type
STRUCT has a fixed number of named fields, and each field can be a
different type. A field within a
STRUCT can also be another
STRUCT, or an
ARRAY or a
STRUCTs in the Dataset Field Interface
In the Dataset Fields interface, an example of a basic
STRUCT data type may look something like the following image.
Notice that each level of a complex data type may be expanded to show component
details, or collapsed.
In the example of the dataset Complex Type - Struct, you can see that the
String, with the symbol A), Orderid
Integer, symbolized by #), and overalldiscount (a
Real, symbolized by 1.2) are primitive types. However,
orderinfo is a
Struct data type, symbolized by
When we click Edit Fields, we can see that while primitive types can be cast as alternate data types (such as Integer into Real), the complex data type STRUCT cannot be changed to another type. However, the primitive components of the array may be cast as other primitive data types. Additionally, unlike other data types, uses complex datatypes only as Dimensions; they or their components cannot be re-defined as Measurements of the dataset.
STRUCTs in Visuals
When building a visual with complex data, you cannot use the complex type directly, as a whole. However, you can add the primitive components of the complex type to the shelves of the visual.
In the following illustration, we built a Pie visual with Customer Name on the X Trellis shelf, the orderinfo.category component on the Dimensions shelf, and the orderinfo.amount component on the Measures shelf.
Changing Field Properties
It is very simple to change field properties for a component of a complex data type.
In the following illustration, we change the orderinfor.qty component on the
Tooltips shelf from the default
aggregation to the
STRUCT in Expression Editor
The expression editor supports the full use of
STRUCTs, both in
Dataset and Visual interfaces.