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

posted @ 2019-11-22 11:19  章峰  阅读(189)  评论(0)    收藏  举报