如何替换 SQL 的数据库列中的特定值?

How to replace specific values in a database column for SQL?

我是新手,是SQL查询的初学者,遇到过问题,希望能得到一些帮助。我试过在线搜索但无济于事。

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

Staff_ID

1234962D 4321739P

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

Staff_ID

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

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

感谢任何帮助!

您可以组合使用 concatsubstring

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

你试过STUFF功能了吗?

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

来自网站:

STUFF( source_string, start, length, add_string )

所以你可以这样使用它

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

会给你****962D。正如 FuzzyTree 所说,您可以使用 CONCAT,但前提是您使用的是 SQL Server 2012 或更高版本。它的用处在于它将空值隐式转换为空字符串。如果您担心向后兼容性问题或将代码移植到 SQL.

的其他风格,它就不太有用了