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

unnest_bitmap

Описание

unnest_bitmap — это табличная функция, которая принимает bitmap и преобразует элементы этого bitmap в несколько строк таблицы.

Lateral Join в Selena можно использовать совместно с функцией unnest_bitmap для реализации обычной логики преобразования столбцов в строки.

Эта функция может использоваться для замены unnest(bitmap_to_array(bitmap)). Она имеет лучшую производительность, потребляет меньше ресурсов памяти и не ограничена длиной массива.

Эта функция поддерживается начиная с версии 1.5.0.

Синтаксис

unnest_bitmap(bitmap)

Параметры

bitmap: bitmap, который вы хотите преобразовать.

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

Возвращает несколько строк, преобразованных из bitmap. Тип возвращаемого значения — BIGINT.

Примеры

c2 — это столбец bitmap в таблице t1.

-- Используйте функцию bitmap_to_string для преобразования значений в столбце c2 в строку.
mysql> select c1, bitmap_to_string(c2) from t1;
+------+----------------------+
| c1 | bitmap_to_string(c2) |
+------+----------------------+
| 1 | 1,2,3,4,5,6,7,8,9,10 |
+------+----------------------+

-- Используйте функцию unnest_bitmap для развертывания столбца bitmap в несколько строк.
mysql> select c1, unnest_bitmap from t1, unnest_bitmap(c2);
+------+---------------+
| c1 | unnest_bitmap |
+------+---------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 1 | 6 |
| 1 | 7 |
| 1 | 8 |
| 1 | 9 |
| 1 | 10 |
+------+---------------+