BITMAP_XOR
更新时间:2025-10-16
描述
计算两个及以上输入 Bitmap 的差集,返回新的 Bitmap。
语法
SQL
1bitmap_xor(<bitmap1>, <bitmap2>, ..., <bitmapN>)
参数
| 参数 | 描述 |
|---|---|
<bitmap1> |
第一个 Bitmap |
<bitmap2> |
第二个 Bitmap |
| ... | ... |
<bitmapN> |
第 N 个 Bitmap |
返回值
多个 Bitmap 差集的 Bitmap。
示例
计算两个 Bitmap 的对称差集:
SQL
1select bitmap_count(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) cnt;
结果如下:
Text
1+------+
2| cnt |
3+------+
4| 2 |
5+------+
将两个 Bitmap 的对称差集转换为字符串:
SQL
1select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4')));
结果如下:
Text
1+----------------------------------------------------------------------------------------+
2| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'))) |
3+----------------------------------------------------------------------------------------+
4| 1,4 |
5+----------------------------------------------------------------------------------------+
计算三个 Bitmap 的对称差集:
SQL
1select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5')));
结果如下:
Text
1+---------------------------------------------------------------------------------------------------------------------+
2| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'))) |
3+---------------------------------------------------------------------------------------------------------------------+
4| 1,3,5 |
5+---------------------------------------------------------------------------------------------------------------------+
计算多个 Bitmap(包括一个空 Bitmap)的对称差集:
SQL
1select 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()));
结果如下:
Text
1+-------------------------------------------------------------------------------------------------------------------------------------+
2| 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())) |
3+-------------------------------------------------------------------------------------------------------------------------------------+
4| 1,3,5 |
5+-------------------------------------------------------------------------------------------------------------------------------------+
计算多个 Bitmap(包括一个 NULL 值)的对称差集:
SQL
1select bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL));
结果如下:
Text
1+---------------------------------------------------------------------------------------------------------------------------+
2| bitmap_to_string(bitmap_xor(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL)) |
3+---------------------------------------------------------------------------------------------------------------------------+
4| NULL |
5+---------------------------------------------------------------------------------------------------------------------------+
