プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

IS_MEMBER_OF関数

IS_MEMBER_OF行関数は、アトミック値と集合を取得し、その集合内でアトミック値が発生しているかどうかを示すブールを返します。

IS_MEMBER_OF関数の構文は、次のとおりです:
IS_MEMBER_OF(<atomic-value>, <set>)
説明:
  • atomic-valueは、50 (整数セットの場合)またはテスト(文字列セットの場合)などのアトミック値です。 単一割当て属性である場合もあります。setで発生しているかどうかを確認するために、atomic-valueがチェックされます。 アトミック値の型は、集合要素の型と一致している必要があります。
  • setは、その要素がatomic-valueと同じ設定データ型を持つセットです。 たとえば、atomic-valueが単一割当て文字列属性の場合、setの要素も文字列である必要があります。
結果の例は次のとおりです({ }は空のセットを示します):
IS_MEMBER_OF(1, { }) = FALSE
IS_MEMBER_OF(1, { 1, 2, 3 }) = TRUE
IS_MEMBER_OF(1, { 2, 3, 4 }) = FALSE
IS_MEMBER_OF(NULL, { }) = NULL
IS_MEMBER_OF(NULL, { 1, 2, 3 }) = NULL
IS_MEMBER_OF(1, { 'a', 'b', 'c' }) yields a checking error because the atomic value and the set elements are not of the same data type

IS_MEMBER_OF関数は、メンバーシップ・チェック関数として使用します。

IS_MEMBER_OFの例

例1: この例では、文によって、スコア・セット(整数を含む)で番号82 (整数)が発生するかどうかが判断されます:
RETURN results AS
SELECT 
   WineID AS idRec,
   IS_MEMBER_OF(82, Score) AS memberAttrs
FROM WineState
WHERE WineID BETWEEN 22 AND 25
ORDER BY idRec
この文の結果は次のようになります:
idRec  memberAttrs
--------------
| 22 | false |
| 23 | true  |
| 24 | false |
| 25 | true  |
--------------

結果には、Records 23と25のスコア・セットに82の数字があり、Records 22と24ではないことが示されます。

例2: この例は例1と類似していますが、この例では、ランキング単一割当て整数属性をIS_MEMBER_OF関数の最初の引数として使用し、2番目の引数としてスコア・セット(整数要素を持つ)を使用しています:
RETURN results AS
SELECT 
   WineID AS idRec,
   IS_MEMBER_OF(Ranking, Score) AS memberAttrs
FROM WineState
ORDER BY idRec
例3: この例は例2と類似していますが、WHERE句でIS_MEMBER_OF関数を使用する点が異なります:
RETURN results AS
SELECT 
   WineID AS idRec,
   Price AS prices
FROM WineState
WHERE IS_MEMBER_OF(Ranking, Score) AND Price IS NOT NULL
ORDER BY idRec

IN式の使用

メンバーシップ・テスト用のIS_MEMBER_OF関数のかわりに、IN式を使用できます。 これを説明するため、例3は次のようにリライトできます:
RETURN results AS
SELECT 
   WineID AS idRec,
   Price AS prices
FROM WineState
WHERE Ranking IN Score AND Price IS NOT NULL
ORDER BY idRec

IN式の詳細は、INを参照してください。