ARB
では、フィールド内の一連の値から任意かつ一貫した値が選択されます。
ARB
関数の構文は、次のとおりです:
ARB(<attribute>)
「属性」は、単一割当て属性またはセット(複数割当て属性)です。
ARB
は次のように機能します:
ARB
はまずNULL値をすべて廃棄してから、残りの非NULL値から任意で一貫している値を選択します。 属性にNULL以外の値が含まれない場合、NULLが返されます。
ARB
では、グループ内のすべての行(空のセットを含む行を含む行)を参照し、いずれかの行から設定値を選択します。 つまり、空のセットと空でないセットは同等に扱われます。 これは、選択肢が任意であるため、返されたセット値が空のセットである可能性があることを意味します。 ARB
の戻り型は引数型と同じです。 : 属性xがmdex:long-set
の場合、ARB(x)となります。 属性にNULL以外の値が含まれない場合、空のセットが返されます。
ARBの例
RETURN results AS SELECT ARB(Price) AS prices FROM WineState GROUP BY WineType ORDER BY WineType
WineType prices -------------------------- | Blanc de Noirs | 16.99 | | Bordeaux: | 21.99 | | Brut | 22.99 | | Chardonnay: | 17.95 | | Merlot: | 25.99 | | Pinot Noir: | 14.99 | | Red: | 9.99 | | White: | 20.99 | | Zinfandel: | | --------------------------
ARB
は2つのNULL値を破棄して21.99値を返しました。
RETURN results AS SELECT ARB(Body) AS bodies FROM WineState GROUP BY WineType ORDER BY WineType
WineType bodies ---------------------------------------- | Blanc de Noirs | { Firm, Robust } | | Bordeaux: | { Silky, Tannins } | | Brut | { Robust } | | Chardonnay: | { } | | Merlot: | { } | | Pinot Noir: | { Supple } | | Red: | { Silky, Tannins } | | White: | { } | | Zinfandel: | { Robust, Tannins } | ----------------------------------------