怎么现在棕色的牛

时间:2015-01-29 00:01:30

标签: overflow

我是SQL Query的新手和初学者,遇到过问题,希望能找到一些帮助。我试过在网上搜索但无济于事。

我的目标是替换列中的某些值。 例如

Staff_ID

1234962D 4321739P

是否可以用星号(*)替换前四位数字。 像这样:

Staff_ID

**** 962D **** 739P

我尝试过使用replace,left和substring,但是我遇到了一些问题,例如系统选择和仅显示前4位数字。

感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

您是否尝试过STUFF功能?

http://www.techonthenet.com/sql_server/functions/stuff.php

来自网站:

STUFF( source_string, start, length, add_string )

所以你可以像这样使用它

STUFF(column, 1, 4, '****')

答案 1 :(得分:0)

您可以使用concatsubstring

的组合
select concat('****',substring('1234962D4321739P', 5, 4)
    ,'****',substring('1234962D4321739P', 13, 4));

答案 2 :(得分:0)

SELECT '****' + SUBSTRING(Staff_ID, 5, LEN(Staff_ID) - 4)
如果输入值为****962D

将为您1234962D。正如FuzzyTree所说,您可以使用CONCAT,但前提是您使用的是SQL Server 2012或更高版本。它的用处在于它隐式地将空值转换为空字符串。如果您担心向后兼容性问题或将代码移植到其他类型的SQL,它就没用了。