云数据库OceanBase入门教程 OceanBase ORA_HASH

2024-02-26 开发教程 云数据库OceanBase入门教程 匿名 2

ORA_HASH函数获取对应表达式的 HASH 值。

语法

ORA_HASH(expr [, max_bucket [, seed_value ] ])

参数

参数

说明

expr

通常为数据库表的列名,数据类型可以是数值类型、字符类型、日期时间类型 或 RAW类型。

max_bucket

可选的 max_bucket参数确定哈希函数返回的最大桶数。取值范围为 0~4294967295,默认值是 4294967295。

seed_value

可选的 seed_value参数使 OceanBase 能够为同一组数据产生许多不同的结果。 您可以指定 0~4294967295 之间的任何值。默认值为 0。

返回类型

NUMBER类型数据。

示例

创建表 SALE,并向里面插入数据。执行以下语句:

CREATE TABLE SALE(MONTH CHAR(6), SELL NUMBER(10,2));
INSERT INTO SALE VALUES(200001, 1000);
INSERT INTO SALE VALUES(200002, 1100);
INSERT INTO SALE VALUES(200003, 1200);
INSERT INTO SALE VALUES(200004, 1300);
INSERT INTO SALE VALUES(200005, 1400);
INSERT INTO SALE VALUES(200006, 1500);
INSERT INTO SALE VALUES(200007, 1600);
INSERT INTO SALE VALUES(200101, 1100);
INSERT INTO SALE VALUES(200202, 1200);
INSERT INTO SALE VALUES(200301, 1300);

使用 ORA_HASH函数查询 SALE 表,并执行以下语句:

SELECT ORA_HASH(CONCAT(month,sell),12,0), month, sell FROM Sale;

查询结果如下:

+-----------------------------------+--------+------+
| ORA_HASH(CONCAT(MONTH,SELL),12,0) | MONTH | SELL |
+-----------------------------------+--------+------+
| 1 | 200001 | 1000 |
| 6 | 200002 | 1100 |
| 5 | 200003 | 1200 |
| 4 | 200004 | 1300 |
| 5 | 200005 | 1400 |
| 2 | 200006 | 1500 |
| 7 | 200007 | 1600 |
| 10 | 200101 | 1100 |
| 7 | 200202 | 1200 |
| 4 | 200301 | 1300 |
+-----------------------------------+--------+------+