1.情景展示
返回服务器的身份证号需要进行加密:只保留前四位和后四位,中间使用*代替,如何实现?
2.解决方案
第一步:查看该表的身份证号的长度有几种类型;
第二步:编写sql
错误方式:
长度为15的会被替换成''。
正确方式:
--截取身份证号 SELECT DECODE(LENGTH(ID_CARD), 18, REPLACE(ID_CARD, SUBSTR(ID_CARD, 5, 10), '**********'), 15, REPLACE(ID_CARD, SUBSTR(ID_CARD, 5, 7), '*******')) 身份证号 FROM VIRTUAL_CARD_TEMP;