场景:该列包含的数字为('1234','123','23456')-我需要将第一个数字替换为'A',并将其余数字替换为*
。
输出应为:
A***
A**
A****
有人可以帮助我吗?如何实现呢?
谢谢
答案 0 :(得分:3)
REPLICATE
是您的最佳选择。
CREATE TABLE #TAB(VAL VARCHAR(100))
INSERT INTO #TAB
VALUES ('1234'), ('123'), ('23456')
SELECT 'A'+REPLICATE('*', LEN(VAL)-1) FROM #TAB
答案 1 :(得分:1)
您可以尝试
NAME
3243
123
432423
423
432
您应该使用replicate命令。
复制-将字符串值重复指定的次数。
在执行更新命令之前,
NAME
A***
A**
A*****
A**
A**
更新命令后,
{{1}}
答案 2 :(得分:0)
尝试
drop TABLE #TestTable
CREATE TABLE #TestTable (val varchar(500));
INSERT INTO #TestTable (val)
VALUES ('123'), ('23456'), ('1234555');
select case when len(isnull(val, ''))<2 then 'A' else 'A' + REPLICATE('*', len(val) - 1) end
from #TestTable