将字符串的所有字符替换为星号,除了 MSSQL 中的第一个字符和空格 [英] Replace all characters of string to asterisks except first characters and space in MSSQL

查看:64
本文介绍了将字符串的所有字符替换为星号,除了 MSSQL 中的第一个字符和空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否可以通过函数散列 mssql 中的敏感数据,并为所有字段保留第一个字符原样".示例:

I`m was wonder if it is possible to hash sensitive data in mssql via function and to leave first character "as-is" for all the fields. Example:

Jon Kirk"名称应提取为 J** K***

"Jon Kirk" name should be extracted as J** K***

推荐答案

我最初发布了一个递归解决方案.这更快:

I had posted a recursive solution at first. This is faster:

declare @name varchar(20) = 'Jon Kirk'

declare @loop int = len(@name)

while @loop > 1
select @name = stuff(@name, @loop, 1, 
case when substring(@name, @loop-1,2) like '% ' then ' '
     when substring(@name, @loop-1,2) like ' %' then substring(@name, @loop,1)
else '*' end), @loop+=-1

select @name

这篇关于将字符串的所有字符替换为星号,除了 MSSQL 中的第一个字符和空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆