SQL 查询,实现卡号部分信息的隐藏 (XXXX5678)
需求:sql 查询,隐藏部分卡号,只显示后四位
e.g. 12345678 显示为 XXXX5678
思路:
- 取后四位,用于显示
- 出去后四位,有几位显示几个X
特殊处理,当总位数不足4位,不再隐藏
select
ISNULL(REPLICATE(‘X’, LEN(cardNumber) - 4), ‘’) + RIGHT(cardNumber, 4) as card
from Cards
当然,如果能确保需要隐藏的内容大于4位数,可以去掉ISNULL,e.g.
select
REPLICATE('X', LEN(cardNumber) - 4) + RIGHT(cardNumber, 4) as card
from Cards
总结,使用到了sql原生的 ISNULL, REPLICATE, RIGHT 三个方法。
还没有评论,来说两句吧...