case when upper(hao_name) regexp '[0-9A-Z]+'
then translate(hao_name,concat('!',
translate(hao_name,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-','!')
),'/')
else hao_name end as hao_name1
这段主要是为了去除hao_name中的汉字,
举个实例hao_name='571-1号',经过case函数的判断,满足正则,然后第二个translate( )函数,也就是第三行中,根据函数特性,除了a替换为!,其余字符都为空值,也就是hao_name='号',通过concat()连接函数得到hao_name='!号',然后就是第一个translate()函数,第二行中的,translate('571-1号','!号','/'),字符'!'对应'/','号'对应空,得到hao_name='571-1',所以最终hao_name1='571-1'。