---
title: "位图构造函数 - OceanBase 数据库 V4.3.2 | OceanBase 文档中心"
description: 位图构造函数 位图构造函数用于构建新的位图数据类型。OceanBase 数据库当前所支持的位图判断函数包括 rb_build_empty() 、 rb_build_varbinary() 和 rb_from_string() 。 说明 返回可视化的十六进制查询结果需了解的注意事项请见 创建高效压缩位图列 。 rb_b…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.2

# 位图构造函数

更新时间：2024-09-23 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.2/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/400.functions-of-mysql-mode/940.roaring-bitmap-functions-of-mysql-mode/200.roaring-bitmap-constructor-functions-of-mysql-mode.md)  

位图构造函数用于构建新的位图数据类型。OceanBase 数据库当前所支持的位图判断函数包括 `rb_build_empty()`、`rb_build_varbinary()` 和 `rb_from_string()`。

#### 说明

返回可视化的十六进制查询结果需了解的注意事项请见[创建高效压缩位图列](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001095609)。

## rb_build_empty

`rb_build_empty()` 函数用于构建一个空的位图数据。语法如下：

```sql
rb_build_empty()

```

该函数无需输入参数。

示例如下：

```sql
SELECT rb_build_empty();
+------------------------------------+
| rb_build_empty()                   |
+------------------------------------+
| 0x0100                             |
+------------------------------------+
1 row in set

```

```sql
SELECT rb_is_empty(rb_build_empty());
+-------------------------------+
| rb_is_empty(rb_build_empty()) |
+-------------------------------+
|                             1 |
+-------------------------------+
1 row in set

```

## rb_build_varbinary

`rb_build_varbinary()` 函数通过 varbinary 来构建位图数据。Varbinary 为 OceanBase 私有格式，是由 version 信息、type 信息、data 等部分组成的二进制格式。语法如下：

```sql
rb_build_varbinary(bin_str)

```

输入的参数为 varbinary 字符串。

示例如下：

```sql
SELECT rb_to_string(rb_build_varbinary(x'0100'));
+-------------------------------------------+
| rb_to_string(rb_build_varbinary(x'0100')) |
+-------------------------------------------+
|                                           |
+-------------------------------------------+
1 row in set

```

```sql
SELECT rb_to_string(rb_build_varbinary(x'0103020100000002000000'));
+-------------------------------------------------------------+
| rb_to_string(rb_build_varbinary(x'0103020100000002000000')) |
+-------------------------------------------------------------+
| 1,2                                                         |
+-------------------------------------------------------------+
1 row in set

```

## rb_from_string

`rb_from_string()` 函数通过特定格式的字符串来构建位图数据。字符串格式为需要构建的位图数据的每一个元素，并通过逗号隔开，如 `1,2,3,4`。语法如下：

```sql
rb_from_string(str)

```

输入的字符串值支持 INT32 和 INT64 两种格式，Oceanbase 支持的合法的值范围是 `[0, UINT64_MAX]`。但是为了兼容 PG，也支持 `[INT32_MIN,0)` 范围的负整数的输入，在输出时负整数会转换为 UINT32 的值输出，比如输入 `-1`，输出是 `4294967295`。

示例如下：

```sql
SELECT rb_from_string('1,2,3');
+--------------------------------------------------+
| rb_from_string('1,2,3')                          |
+--------------------------------------------------+
| 0x010303010000000200000003000000                 |
+--------------------------------------------------+
1 row in set

```

```sql
SELECT rb_to_string(rb_from_string('-1'));
+------------------------------------+
| rb_to_string(rb_from_string('-1')) |
+------------------------------------+
| 4294967295                         |
+------------------------------------+
1 row in set

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
