oracle sql
(1) 目标 : 对姓名进行脱敏处理,即保留姓名最后一位,其它用*代替
lpad(substr(a.ORIGINATOR_NAME,length(a.ORIGINATOR_NAME)),length(a.ORIGINATOR_NAME)+1,'*') ORIGINATOR_NAME
解释:
a.ORIGINATOR_NAME 是查询出来的姓名
substr(string,number) : 从指定number开始截取string到最后;注:从0和1开始截取一样效果; 如果有第三位参数表示截取字段位数;
lpad(string, padded_length, [ pad_string ]) : 从左边对字符串使用指定的字符进行填充;
length(a.ORIGINATOR_NAME)+1 : 试了length(a.ORIGINATOR_NAME)长度,效果不正确,不理解为什么加1
(个人理解:汉字在数据库的字符长度为2位;utf-8格式);
(2) 在使用left join中条件放在on 还是where后面
on 后面对主表的数据还是会出现,从表的数据可能为空;
where 后面会对整个查询结果作筛选;
注:个人理解 on 后面只能对从表的作出要求,对主表不起作用;where对查询结果作筛选,即主表和从表都起作用;
(3) 在时间类型转String需要加上格式:
to_char(date , 'yyyymmddhh24miss') : 可以将日期转化String
浙公网安备 33010602011771号