字符串SQL SERVER中的掩码字符

use*_*512 2 sql sql-server

如何在SQL SERVER的字符串中的x和y char之间替换字符。例如,如果我有:TEST123456在结尾处有TE ****** 56。我不知道字符串会持续多久,但我知道我需要在字符串中的x和y之间屏蔽字符

Sam*_*ami 5

您可以使用REPLICATE()STUFF()作为:

DECLARE @String VARCHAR(20)='TEST123456',
        @Start INT = 3,
        @End INT = 5;


SELECT
    @String AS MyString,
    STUFF(@String, @Start, @End - @Start, REPLICATE('*', @End - @Start)) AS Mask;
Run Code Online (Sandbox Code Playgroud)

当您说“我不知道字符串会持续多久”时,该REPLICATE()函数将根据并返回星号“ *”,@Start然后@End您提供。