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

SUB_BITMAP

Описание​

Извлекает подмножество элементов Bitmap, начиная с указанной позиции и ограничивая их количество заданным пределом, и возвращает это подмножество в виде нового Bitmap.

Синтаксис​

SUB_BITMAP(<bitmap>, <position>, <cardinality_limit>)

Параметры​

ПараметрОписание
<bitmap>Значение Bitmap
<position>Начальная позиция (включительно). При отрицательной индексации последний элемент имеет индекс -1.
<cardinality_limit>Максимальное количество элементов

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

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

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

Примеры​

Чтобы получить подмножество Bitmap с позиции 0 и с ограничением количества элементов до 3:

select bitmap_to_string(sub_bitmap(bitmap_from_string('1,0,1,2,3,1,5'), 0, 3)) value;

Результат:

+-------+
| value |
+-------+
| 0,1,2 |
+-------+

Чтобы получить подмножество Bitmap с позиции -3 и с ограничением количества элементов до 2:

select bitmap_to_string(sub_bitmap(bitmap_from_string('1,0,1,2,3,1,5'), -3, 2)) value;

Результат:

+-------+
| value |
+-------+
| 2,3 |
+-------+

Чтобы получить подмножество Bitmap с позиции 2 и с ограничением количества элементов до 100:

select bitmap_to_string(sub_bitmap(bitmap_from_string('1,0,1,2,3,1,5'), 2, 100)) value;

Результат:

+-------+
| value |
+-------+
| 2,3,5 |
+-------+
select bitmap_to_string(sub_bitmap(bitmap_from_string('1,0,1,2,3,1,5'), 2, NULL)) value;

Результат:

+-------+
| value |
+-------+
| NULL |
+-------+