```sql
---替换
regexp_replace(lower(name),'[^0-9a-zA-Z\\u4e00-\\u9fa5]','') 除中文字母数字以外的字符全部替换掉
“\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值,所以这个正则表达式可以用来判断字符串中是否包含中文
例如:
select
'李中*华',--李中*华
regexp_replace(lower('李中*华' ),'[^0-9a-zA-Z\\u4e00-\\u9fa5]','') ---李中华
---查找
select
regexp_extract('李中*华','([~.!!@#¥%……&*()【】-=——+?《》/·。])')----*
再结合length()就可以锁定有特殊字符的数据
例如:
where length(regexp_extract('李中*华','([~.!!@#¥%……&*()【】-=——+?《》/·。])'))>0