赞
踩
文章目录
隐藏姓名中的姓氏或者名字
隐藏手机号中间的四位数
隐藏身份证号中间的四位数
总结
姓名、手机号、身份证号以及银行卡号等属于个人敏感信息。为了保护信息安全,在前端界面显示时可能需要将这些信息中的部分内容进行隐藏,也就是显示为星号(*)。因此,本文给大家介绍一下如何在 Microsoft SQL Server 实现信息的隐藏。
隐藏姓名中的姓氏或者名字
以医院排队叫号系统为例,通常会隐藏患者的姓氏(两个字的姓名)或者名字中的倒数第二个字(三个字或更多字的姓名),例如“*备”或者“诸*亮”。对于 Microsoft SQL Server 而言,可以结合使用 CASE 表达式和字符串函数实现这一功能。例如(示例表):
SELECT TOP 5
emp_name "隐藏之前",
CASE len(emp_name)
WHEN 2 THEN concat('*', right(emp_name, 1))
ELSE concat(left(emp_name, len(emp_name)-2), '*', right(emp_name, 1))
END "隐藏之后"
FROM employee
ORDER BY emp_id;
隐藏之前|隐藏之后|
-------|------|
刘备 |*备 |
关羽 |*羽 |
张飞 |*飞 |
诸葛亮 |诸*亮 |
黄忠 |*忠 |
其中,len(emp_name) 用于获取姓名中的字符个数;如果姓名只有两个字,只需要将一个星号和第 2 个字连接起来,right 函数用于返回第 2 个字;如果姓名包含三个或者更多字,将倒数第 2 个字用星号替代,left 函数用于返回字符串左侧的字符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。