Перейти к содержимому
Последнее обновление

BITMAP_XOR

Описание​

Вычисляет симметрическую разность (операция XOR) двух или более входных Bitmap и возвращает новый Bitmap.

Синтаксис​

BITMAP_XOR(<bitmap1>, <bitmap2>, ..., <bitmapN>)

Параметры​

ПараметрОписание
<bitmap1>Первый Bitmap
<bitmap2>Второй Bitmap
......
<bitmapN>N-й Bitmap

Возвращаемое значение​

Bitmap, представляющий симметрическую разность нескольких Bitmap.

  • Если параметр имеет значение NULL, возвращается NULL

Примеры​

Вычисление симметрической разности двух Bitmap:

select bitmap_count(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) cnt;

Результат:

+------+
| cnt |
+------+
| 2 |
+------+

Преобразование симметрической разности двух Bitmap в строку:

select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) res;

Результат:

+------+
| res |
+------+
| 1,4 |
+------+

Вычисление симметрической разности трёх 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'))) res;

Результат:

+-------+
| res |
+-------+
| 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())) res;

Результат:

+-------+
| res |
+-------+
| 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)) res;

Результат:

+------+
| res |
+------+
| NULL |
+------+