我是SQL Query的新手和初学者,遇到过问题,希望能找到一些帮助。我试过在网上搜索但无济于事。
我的目标是替换列中的某些值。 例如
1234962D 4321739P
是否可以用星号(*)替换前四位数字。 像这样:
**** 962D **** 739P
我尝试过使用replace,left和substring,但是我遇到了一些问题,例如系统选择和仅显示前4位数字。
感谢任何帮助!
答案 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)
您可以使用concat
和substring
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,它就没用了。