注意:我们经常会使用split对字符串做切分,但要注意一点,当原来的值为空值时,容易产生大小为1的空字符串数组[""],在我们查询时,它和空数组[]输出来是很相似的,但它的大小却是1,如果我们再根据array的size判断做一下操作时,很可能出现意想不到的错误。
例如:
| one_cate_name |
|---|
| 工程科技 |
| 哲学与人文科学;医药卫生科技 |
| 社会科学I |
SELECt split(one_cate_name, ";") as split_name, size(split(one_cate_name, ";")) as num from table_name
得到:
为避免出现空字符串数组[""],可以切分时加条件
SELECt case when (one_cate_name="") then array() else split(one_cate_name, ";") end as split_name, size(split(one_cate_name, ";")) as num from table_name



