ARRAY_AGGはARRAYタイプ値を返し、その構成要素は第1パラメータとして渡された構成要素式値の集約セットです。n-D ARRAY結果値の場合、配列に集約されるvalue_expression値は行優先順で入力されます。
第1引数でORDER BY句を指定すると、結果の配列に入力される値は、この句で指定された列値の順に並べられます。ARRAY_AGGのORDER BY句には、次のルールが適用されます。
- ARRAY_AGGのORDER BY句に渡してもよい値は1つのみです。この点が、ORDERE BYに対して複数の値を渡すことができるSELECT文のORDER BYとは異なります。
- ARRAY列値は、ORDER BY句におけるソート キーとしては渡せません。ARRAY値のリレーショナル比較はできません。それ以外に、BLOBまたはCLOBなど、比較できないデータ型値は、ORDER BY句におけるソート キーとしては渡せません。
- ORDER BYに渡される単一の値の場合、リレーショナル比較ができる式は渡してもかまいません。ただし、渡される値が列値ではない場合、結果の配列構成要素のソートは行なわれません。また、結果は結果の配列に順不同で書き込まれます。適切なソートを行なうには、SQL文内で参照先のテーブルの1つから得られる列値を使用します。