In such cases I would use [flattening of the views](https://community.denodo.com/docs/html/browse/6.0/vdp/administration/creating_views/creating_derived_views/creating_flatten_views) operation using the VDP AdminTool UI. Although the structure of your view has multiple arrays and registers, you can flatten multiple registers in just one view. When you “flatten” the fields of a register and not an array, do not create a Flatten view. Instead, create a Selection view as below:
Right click on the base view -> select “New” -> Selection -> Edit tab of the view -> Output -> Right click on the Register column that needs to be flattened -> Project subfields of the “column” (You can also select the “Project subfields of the “column” recursively” option to flatten registers-within-registers in a single step)
To flatten arrays, for each “flattening” operation, it is possible to select just one array. If there is more than one array, this operation will be repeated for each one. So, here you will have stacked views to flatten multiple arrays and will also allow some control over the multiplicity between them.
Even if the user has constructed multiple flatten views referencing each other, there will be one final view that can be exposed to the users.
Using the fields obtained after the above operations, you can implement the [Group_Concat](https://community.denodo.com/docs/html/browse/6.0/vdp/vql/appendix/syntax_of_condition_functions/aggregation_functions#group-concat) function which outputs a string result with the concatenated non-NULL values from a group as per the requirement.
Hope this helps!