如何修改SQLite查询结果中studentNo列的输出格式?
SQLite实现studentNo掩码显示(保留最后四位)
你需要将studentNo的前几位替换为X,仅保留最后四位,之前用REPLACE的方式不对——REPLACE(studentNo, '', 'X')会在每个字符之间插入X,完全达不到掩码效果。下面提供两种可行的解决方法:
方法1:针对固定长度的studentNo(已知为9位)
如果你的studentNo固定是9位,直接拼接固定数量的X和截取的最后四位即可:
SELECT 'XXXXX' || SUBSTR(studentNo, 6) AS studentNo FROM students;
SUBSTR(studentNo, 6)会从第6个字符开始截取,得到2685,和五个X拼接后正好是XXXXX2685。
方法2:通用适配任意长度的studentNo
如果studentNo长度不固定,想统一保留最后四位、前面全部替换为X,可以用以下语句:
SELECT REPEAT('X', LENGTH(studentNo) - 4) || SUBSTR(studentNo, -4) AS studentNo FROM students;
LENGTH(studentNo)获取字符串总长度,减去4得到需要替换为X的位数REPEAT('X', ...)生成对应数量的X字符SUBSTR(studentNo, -4)直接截取字符串的最后四位,不受总长度影响
执行以上任意一条语句,都能得到你想要的XXXXX2685结果。
内容的提问来源于stack exchange,提问作者Ashy Ashcsi
相关产品推荐
相关产品推荐

