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

语法

  1. 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,并向里面插入数据。执行以下语句:

  1. CREATE TABLE SALE(MONTH CHAR(6), SELL NUMBER(10,2));
  2. INSERT INTO SALE VALUES(200001, 1000);
  3. INSERT INTO SALE VALUES(200002, 1100);
  4. INSERT INTO SALE VALUES(200003, 1200);
  5. INSERT INTO SALE VALUES(200004, 1300);
  6. INSERT INTO SALE VALUES(200005, 1400);
  7. INSERT INTO SALE VALUES(200006, 1500);
  8. INSERT INTO SALE VALUES(200007, 1600);
  9. INSERT INTO SALE VALUES(200101, 1100);
  10. INSERT INTO SALE VALUES(200202, 1200);
  11. INSERT INTO SALE VALUES(200301, 1300);

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

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

查询结果如下:

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