Последнее обновление
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 |
+------+