
# SQL SPLIT函数
#### 功能描述
SPLIT函数用于通过指定的分隔符拆分字符串，并返回拆分后的子串集合。
#### 语法格式
```
SELECT split_to_map(x, delimiter01, delimiter02)
```
#### SPLIT函数语句
| **语句**       | **说明**                                                  | **示例**                                    | 参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| split        | split函数用于通过指定的分隔符拆分字符串，并返回拆分后的子串集合。                     | split(x, delimiter,\[limit\])             | - x：参数值为varchar类型。  - delimiter：分隔符。  - limit：限制字符串拆分的个数，大于0的整数。   |
| split_part   | split_part函数通过指定的分隔符拆分字符串，并返回指定索引的内容。                   | split_part(x, delimiter, part)            | - x：参数值为varchar类型。  - delimiter：分隔符。  - part：指定要返回字段的索引值。                  |
| split_to_map | split_to_map函数用于使用指定的第一个分隔符拆分字符串，然后再使用指定的第二个分隔符进行第二次拆分。 | split_to_map(x, delimiter01, delimiter02) | - x：参数值为varchar类型。  - delimiter01：分隔符1。  - delimiter02：分隔符2。                |
   
#### 示例及说明
- **split** **函数**
  将目标字符串按指定字符串分割，limit用于限制分割后的最大单词数，若不填写，则默认全部分割。
  1. 字段样例 Id：dc1dab7e-b045-4e77-bda4-914d083d1bf7
     
  
  2. 查询和分析语句
     ```
     SELECT split(Id,'-'), split(Id,'-',2)
     ```
     
  
  3. 查询和分析结果
     表1split函数查询和分析结果 
     | EXPR$0                                             | EXPR$1                                       |
     |:---|:---|
     | \["dc1dab7e","b045","4e77","bda4","914d083d1bf7"\] | \["dc1dab7e","b045-4e77-bda4-914d083d1bf7"\] |
        
     
   
- **split_part** **函数**
  通过指定的分隔符拆分字符串，并返回指定索引的内容字段样例，索引下标从0开始。若索引下标超过分割数量或者为负数，则返回空字符串。
  1. 字段样例 Id: dc1dab7e-b045-4e77-bda4-914d083d1bf7
     
  
  2. 查询和分析语句
     ```
     SELECT split_part(Id,'-',1)
     ```
     
  
  3. 查询和分析结果
     表2split_part函数查询和分析结果 
     | EXPR$0 |
     |:---|
     | b045   |
        
     
   
- **split_to_map** **函数**
  用于使用指定的第一个分隔符拆分字符串，然后再使用指定的第二个分隔符进行第二次拆分，展示形式为{"KEY1":"VALUE1","KEY2":"VALUE2"}**。**无法被二次分割的value值为空。
  1. 字段样例 **Request:**request_id:"e3ac4b70c7d244f080d434e300d8065a";request_time: "1674965051000"
     
  
  2. 查询和分析语句
     ```
     SELECT split_to_map(Request,';',':')
     ```
     
  
  3. 查询和分析结果
     表3split_to_map函数查询和分析结果 
     | EXPR$0                                                                            |
     |:---|
     | {"request_id ":"e3ac4b70c7d244f080d434e300d8065a","request_time":"1674965051000"} |
        
     
   
 
