我在 SQL 表中有一个值,如下所示:
80400365_SwapOpenTrd_20180831.csv
我想替换数值,因此返回如下:
%_SwapOpenTrd_%.csv
我尝试了以下代码,但返回了多组 % 字符...
%%%%%%%%_SwapOpenTrd_%%%%%%%%%csv
我需要在此处更改什么以获得所需的结果?
http://sqlfiddle.com/#!18/9eecb/33261
DECLARE @Temp nvarchar(150) = '80400365_SwapOpenTrd_20180831.csv'
Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^a-z_% ]%' -- keep underscore and space
While PatIndex(@KeepValues, @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '%')
select @Temp
根据您的最新评论,我对您的原始示例进行了一些更改。以下逻辑防止重复
%
被填充。看看这是否适合你。
结果