translate(char, char1,char2)实例

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'。

猜你喜欢

转载自blog.csdn.net/weixin_42382211/article/details/80743888