SUBSET関数

SUBSET行関数は、同じデータ型の2つのセットを取得して、最初のセットが2番目のセットのサブセットであるかどうかを示すブール値を返します。

SUBSET関数の構文は次のとおりです。
SUBSET(<set1>, <set2>)
ここで、
  • set1はセット・データ型の1つのセットです(mdex:string-setなど)。たとえば、set1は、複数割当ての文字列属性にすることができます。
  • set2set1と同じセット・データ型の1つのセットです。たとえば、set1が複数割当ての文字列属性である場合は、set2も文字列のセットにする必要があります(別の複数割当ての文字列属性など)。set2は、set1内に完全に含まれているかどうかがチェックされます。
次に、結果の例をいくつか示します({ }は空のセットを表しています)。
SUBSET({ }, { }) = TRUE
SUBSET({ }, { 1, 2, 3 }) = TRUE
SUBSET({ 1, 2 }, { 1, 2 }) = TRUE
SUBSET({ 1, 2 }, { 1, 2, 3 }) = TRUE
SUBSET({ 1, 2 }, { 1, 3, 5 }) = FALSE
SUBSET({ 1, 2 }, { 'x', 'y', 'z' }) yields a checking error because the two sets are not of the same data type

空のセットは常に、他のすべてのセット(空のセットも含む)のサブセットになります。

SUBSETの例

この例では、FlavorsとBodyの両方が複数割当ての文字列属性であり、WineIDはレコードの主キーです。
RETURN results AS
SELECT 
   WineID AS id,
   SUBSET(Flavors, Body) AS subAttrs
WHERE WineID < 5
ORDER BY id
この文の結果は次のようになります。
id   subAttrs
-------------
| 1 | true  |
| 2 | true  |
| 3 | false |
| 4 | false |
-------------

結果を見ると、レコード1および2ではFlavorsセットがBodyセットのサブセットになっていますが、レコード3および4ではサブセットになっていません。