如何替换 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 位数字。
感谢任何帮助!
您可以组合使用 concat
和 substring
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.
的其他风格,它就不太有用了
我是新手,是SQL查询的初学者,遇到过问题,希望能得到一些帮助。我试过在线搜索但无济于事。
我的目标是替换列中的某些值。 例如
Staff_ID
1234962D 4321739P
是否可以用星号 (*) 替换前四位数字。 像这样:
Staff_ID
****962D ****739P
我试过使用 replace、left 和 substring,但我遇到了一些问题,比如系统只选择和显示前 4 位数字。
感谢任何帮助!
您可以组合使用 concat
和 substring
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.