regexp_replace(lower(name),’[^0-9a-zA-Z\u4e00-\u9fa5]’,’’) 除中文字母数字以外的字符全部替换掉
“\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值,所以这个正则表达式可以用来判断字符串中是否包含中文
od.remark=‘05|01000016||6222024********2135||||||||||5840|招商银丰城支行|213|Auto测试贰叁捌|||Y|1.06|JS|11|32|0.0||’
REGEXP_REPLACE(replace( case when substr(od.remark,
instr(od.remark,’|’,1,21)+1, (J的位置)
instr(od.remark,’|’,1,22)-1-instr(od.remark,’|’,1,21)) S后面|的位置-1-J前面|的位置 指的宽度JS
is null then ‘’
else substr(od.remark,
instr(od.remark,’|’,1,21)+1, (J的位置)
instr(od.remark,’|’,1,22)-1-instr(od.remark,’|’,1,21)) end ,chr(10),’’), S后面|的位置-1-J前面|的位置
‘[,""]’)
解析上面的REGEXP_REPLACE 正则替换,只要含有[,""]里面的符号就删除
instr(od.remark,’|’,1,21)意思是 以第一个| 开始到21个|
replace 替换的意思以‘’ 替换chr(10)
substr 截取
答案是JS
可以先自己推断下然后直接用sql在客户端自己运行