PIVOT Clause
The PIVOT
clause inputs a bag of binding tuples or an array of
binding tuples. Semantically, it is similar to SELECT VALUE
but
whereas the latter creates a collection of values, PIVOT
constructs
a tuple where the each input binding is evaluated to an attribute
value pair in the tuple.
The clause:
PIVOT v AT a
inputs a bag or an array of binding tuples and outputs a single tuple where each evaluation of \$v\$ and \$a\$ generate an attribute in the tuple.
This example illustrates a PIVOT
that creates a tuple from a
collection of tuples.
PIVOT x.v AT x.a
FROM << {'a': 'first', 'v': 'john'}, {'a': 'last', 'v': 'doe'} >> as x
The result is
{'first':'john', 'last':'doe'}
The expression \$a\$ is expected to evaluate into a string
value. In strict mode, it is an error if this evaluates to a
non-string value. In permissive mode, the attribute is considered
MISSING
and does not appear in the output. The expression \$v\$
can be any PartiQL value, but if it is MISSING
it will not be
generated in the resulting tuple.