次の方法で共有


Windows SharePoint Services 検索 SQL 構文での複数値 (ARRAY) の比較

コンテンツに格納されている複数の値を持つ列 (複数値の列) を比較します。

…WHERE <column> <comp_op> [<quantifier>] <comparison_list>

Remarks

検索 は、列の参照が複数値の列ではない場合にエラーを返します。列のデータ型は、比較リストの要素と互換性があることが必要です。必要に応じて、列の参照を別のデータ型にキャストできます。

WHERE 句では、通常の比較演算子をすべて使用できます。複数値を比較する場合、修飾子を使用するかどうか、およびどの修飾子を使用するかによって、比較演算子の意味が少し異なります。そのため、以下に特定の修飾子テーブルにある比較演算子の機能について説明します。

比較リストでは、複数値の列に対して比較される literal の値の配列を指定します。以下に比較リストの構文を示します。

ARRAY [<literal>,<literal>]

注意  比較リストの構文に注意してください。比較リストを構成する literals のグループを角かっこで囲む必要があります。比較リストの個々の要素を角かっこで囲まないでください。たとえば、ARRAY [1,2,3] は正しい構文ですが、ARRAY [1[,2][,3]] は正しくありません。

複数値の比較が TRUE を返すのか、FALSE を返すのかを判断するために使用されるメソッドは、省略可能な修飾子によって指定されます。以下のセクションでは、各修飾子と、その修飾子を使用した場合の各比較演算子の機能について説明します。

修飾子を指定しない場合

修飾子を指定しない場合、比較の左 (L) 側の各要素は右 (R) 側の同じ位置にある要素と比較されます。比較は配列の最初の要素から開始され、最後の要素まで進められます。L 側のすべての要素が R 側の対応する要素と等しい場合は、どちらの配列が大きいかを判断するのに配列の要素数が使用されます。

以下の表では修飾子が指定されていない場合の比較演算子の操作を示し、それぞれについて簡単に説明しています。

演算子

説明

=

"に等しい" は、L 側の各要素が対応する R 側の要素と同じ値を持ち、両方の配列が同じ要素数を持つ場合に TRUE を返します。

!= または <>

"に等しくない" は、L 側の 1 つ以上の要素が対応する R 側の要素と異なる値を持つ場合、または L 側と R 側の配列が同じ数の要素を持たない場合に TRUE を返します。

>

"より大きい" は、L 側の各要素が対応する R 側の要素の値よりも大きい場合に TRUE を返します。L 側のすべての要素の値が対応する R 側の要素と正確に一致し、R 側の配列が L 側の要素に対応しない要素を持つ場合、"より大きい" は TRUE を返します。

>=

"以上" は、すべての L 側の要素の値が対応する R 側の要素の値よりも大きいまたは等しい場合に TRUE を返します。

<

"未満" は、L 側の各要素の値が対応する R 側の要素の値よりも小さい場合に TRUE を返します。"未満" は L 側が R 側よりも要素数が少ない場合にも TRUE を返します。

<=

"以下" は、すべての L 側の要素の値が対応する R 側の要素の値よりも小さいまたは等しい場合に TRUE を返します。

ALL 修飾子

ALL 修飾子は、左 (L) 側の各要素が右 (R) 側のすべての要素に対して比較されることを指定します。TRUE を返すには、R 側のすべての要素と比較した場合に L 側のすべての要素が TRUE になる必要があります。L 側と R 側の配列の要素数は、結果には影響しません。

以下の表は、各比較演算子が ALL 修飾子を使用した場合にどのように機能するかを示しています。

演算子

説明

=

"に等しい" は、L 側の各要素の値が R 側のすべての要素の値と同じ場合に TRUE を返します。

!= または <>

"に等しくない" は、L 側の 1 つ以上の要素の値が R 側のいずれかの要素の値と異なる場合に TRUE を返します。

>

"より大きい" は、L 側のすべての要素の値が R 側のすべての要素の値よりも大きい場合に TRUE を返します。

>=

"以上" は、L 側のすべての要素の値が R 側のすべての要素の値よりも大きいまたは等しい場合に TRUE を返します。

<

"未満" は、L 側のすべての要素の値が R 側のすべての要素の値よりも小さい場合に TRUE を返します。

SOME (または ANY) 修飾子

SOME 修飾子と ANY 修飾子は、ほとんど同じ意味で使用できます。SOME 修飾子は、左 (L) 側の各要素が右 (R) 側のすべての要素に対して比較されることを指定します。TRUE を返すには、R 側のすべての要素と比較した場合に L 側の少なくとも 1 つの要素が TRUE になる必要があります。L 側と R 側の配列の要素数は、結果には影響しません。

以下の表は、各比較演算子が SOME 修飾子を使用した場合にどのように機能するかを示しています。

演算子

説明

=

"に等しい" は、L 側の要素の値の少なくとも 1 つが R 側のいずれかの要素の値と同じ場合に TRUE を返します。

!= または <>

"に等しくない" は、どの L 側の要素の値も、いずれかの R 側の要素の値と同じではない場合に TRUE を返します。

>

"より大きい" は、L 側の要素の値の少なくとも 1 つが R 側のいずれかの要素の値よりも大きい場合に TRUE を返します。

>=

"以上" は、少なくとも 1 つの L 側の要素の値が R 側のいずれかの要素の値よりも大きいまたは等しい場合に TRUE を返します。

<

"未満" は、少なくとも 1 つの L 側の要素の値が R 側のいずれかの要素の値よりも小さい場合に TRUE を返します。

以下の比較では、すべて TRUE であると評価されます。実際に使用する場合は、検索クエリ構文の左側に literal ではなくプロパティが必要であることに注意してください。

ARRAY [1,2] > ARRAY [1,1]
ARRAY [1,2] > ARRAY [1,1,2]
ARRAY [1,2] < ARRAY [1,2,3]
ARRAY [1,2] = SOME ARRAY [1,12,27,35,2]
ARRAY [1,1] != ALL ARRAY [1,2]
ARRAY [1,20,21,22] < SOME ARRAY [0,40]
ARRAY [1,20,21,22] < ANY ARRAY [0,40]

See Also

参照

Windows SharePoint Services 検索 SQL 構文のフルテキスト以外の述語