SQL Server:字符串替换为可变长度

时间:2018-08-17 07:03:10

标签: sql sql-server

场景:该列包含的数字为('1234','123','23456')-我需要将第一个数字替换为'A',并将其余数字替换为*

输出应为:

A***
A**
A****

有人可以帮助我吗?如何实现呢?

谢谢

3 个答案:

答案 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