
# HASH-RANGE
#### 语法
创建一个或多个HASH-RANGE分区表，其中每个分区可能有一个或一个以上的子分区。
```
CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] HASH(expr)
   SUBPARTITION BY RANGE {(expr) | COLUMNS(column_list)} 
   (partition_definition [, partition_definition] ...);
```
其中，partition_definition为：
```
PARTITION partition_name
    (subpartition_definition [, subpartition_definition] ...)
```
其中，subpartition_definition为：
```
SUBPARTITION subpartition_name VALUES LESS THAN {value | value_list | MAXVALUE}
```
表1参数说明 
| **参数名称**          | **描述**                            |
|:---|:---|
| table_name        | 要创建的表名称。                          |
| expr              | 分区字段表达式，目前只支持INT类型，不支持字符类型。       |
| column_list       | LIST COLUMNS的情况下使用，分区字段列表，不支持表达式。 |
| value             | 分区边界值。                            |
| value_list        | LIST COLUMNS的情况下使用，多个字段的边界值。      |
| MAXVALUE          | 最大值。                              |
| partition_name    | 分区名称，同一个表中不可重复。                   |
| subpartition_name | 子分区名称，同一个表中不可重复。                  |
   
#### 使用示例
**HASH-RANGE类型的使用示例**
```
CREATE TABLE tbl_hash_range
(
    col1 INT,
    col2 INT,
    col3 varchar(20),
    col4 DATE
)
PARTITION BY HASH(col1)
SUBPARTITION BY RANGE(col2)
(
  PARTITION p0 (
    SUBPARTITION s0 VALUES LESS THAN(4),
    SUBPARTITION s1 VALUES LESS THAN(7),
    SUBPARTITION s2 VALUES LESS THAN(10),
    SUBPARTITION s3 VALUES LESS THAN(13)
  ),
  PARTITION p1
  (
    SUBPARTITION s4 VALUES LESS THAN(4),
    SUBPARTITION s5 VALUES LESS THAN(7),
    SUBPARTITION s6 VALUES LESS THAN(10),
    SUBPARTITION s7 VALUES LESS THAN(13)
  ),
  PARTITION p2
  (
    SUBPARTITION s8 VALUES LESS THAN(4),
    SUBPARTITION s9 VALUES LESS THAN(7),
    SUBPARTITION s10 VALUES LESS THAN(10),
    SUBPARTITION s11 VALUES LESS THAN(13)
  )
);
```
