BITMAP_XOR
説明
2つ以上の入力Bitmapの対称差集合(XOR演算)を計算し、新しいBitmapを返します。
構文
BITMAP_XOR(<bitmap1>, <bitmap2>, ..., <bitmapN>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<bitmap1> | 最初のBitmap |
<bitmap2> | 2番目のBitmap |
| ... | ... |
<bitmapN> | N番目のBitmap |
Return Value
複数のBitmapの対称差分を表すBitmap。
Examples
2つのBitmapの対称差分を計算するには:
select bitmap_count(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) cnt;
結果は次のようになります:
+------+
| cnt |
+------+
| 2 |
+------+
2つのBitmapの対称差分を文字列に変換するには:
select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4')));
結果は以下のようになります:
+----------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) |
+----------------------------------------------------------------------------------------+
| 1,4 |
+----------------------------------------------------------------------------------------+
3つのBitmapの対称差を計算するには:
select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5')));
結果は次のようになります:
+---------------------------------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'))) |
+---------------------------------------------------------------------------------------------------------------------+
| 1,3,5 |
+---------------------------------------------------------------------------------------------------------------------+
空のBitmapを含む複数のBitmapの対称差集合を計算するには:
select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), bitmap_empty()));
結果は次のようになります:
+-------------------------------------------------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), bitmap_empty())) |
+-------------------------------------------------------------------------------------------------------------------------------------+
| 1,3,5 |
+-------------------------------------------------------------------------------------------------------------------------------------+
複数のBitmapの対称差分を計算するには、NULL値を含めて:
select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL));
結果は次のようになります:
+---------------------------------------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL)) |
+---------------------------------------------------------------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------------------------------------------------------------+