UNION関数

UNION行関数は、同じデータ型の2つのセットを取得して、両方の入力セットの共用体となる1つのセットを返します。

UNION関数の構文は次のとおりです。
UNION(<set1>, <set2>)
ここで、
  • set1はセット・データ型の1つのセットです(mdex:string-setなど)。たとえば、set1は、複数割当ての文字列属性にすることができます。
  • set2set1と同じセット・データ型の1つのセットです。たとえば、set1が複数割当ての文字列属性である場合は、set2も文字列のセットにする必要があります(別の複数割当ての文字列属性など)。
異なるセット・データ型の2つのセットの共用体を取得しようとすると、次の例のようなエラー・メッセージが返されます。
The function "UNION" is not defined for the argument type(s) mdex:string-set, mdex:double-set

このエラーの例では、UNIONが、入力として複数割当ての文字列属性(mdex:string-set)および複数割当てのdouble属性(mdex:double-set)を取得して使用されています。

UNIONの例

この例では、BodyとFlavorsの両方が複数割当ての文字列属性であり、WineIDはレコードの主キーです。
RETURN results AS
SELECT 
   WineID AS idRec,
   UNION(Body, Flavors) AS unionAttrs
FROM WineState
WHERE WineID BETWEEN 5 AND 9
ORDER BY idRec
この文の結果は次のようになります。
idRec                unionAttrs
-----------------------------------------------------
| 5 | { Blackberry, Earthy, Silky, Tannins, Toast } |
| 6 | { Berry, Plum, Robust, Zesty }                |
| 7 | { Cherry, Pepper, Prune, Silky, Tannins }     |
| 8 | { Cherry, Oak, Raspberry, Robust }            |
| 9 | { Earthy, Fruit, Strawberry, Silky, Tannins } |
-----------------------------------------------------

例として1つのセットを取ると、レコード5には"Silky"と"Tannins"の2つのBodyが割り当てられており、"Blackberry"、"Earthy"および"Toast"の3つのFlavorsが割り当てられています。結果のセットは、5つの属性値すべての共用体になります。