SelectDB Enterprise
参考手册
SQL 函数
标量函数
BITMAP 函数
BITMAP_XOR

BITMAP_XOR

描述

计算两个及以上输入 Bitmap 的差集,返回新的 Bitmap。

语法

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

参数

参数描述
<bitmap1>第一个 Bitmap
<bitmap2>第二个 Bitmap
......
<bitmapN>第 N 个 Bitmap

返回值

多个 Bitmap 差集的 Bitmap。

示例

计算两个 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')));

结果如下:

+----------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) |
+----------------------------------------------------------------------------------------+
| 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')));

结果如下:

+---------------------------------------------------------------------------------------------------------------------+
| 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                                                                                                                      |
+---------------------------------------------------------------------------------------------------------------------------+
© 2025 北京飞轮数据科技有限公司 京ICP备2022004029号 | Apache、Apache Doris 以及相关开源项目名称均为 Apache 基金会商标