SQL 服务器:RegEx ASCII 删除
SQL Server : RegEx ASCII removal
正在寻找进行区分大小写搜索的方法。
CREATE FUNCTION [dbo].[fn_StripCharacters]
(
@String NVARCHAR(MAX),
@RemoveFollowing VARCHAR(255)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
SET @RemoveFollowing = '%['+@RemoveFollowing+']%'
WHILE PatIndex(@RemoveFollowing, @String) > 0
SET @String = Stuff(@String, PatIndex(@RemoveFollowing, @String), 1, '')
RETURN @String
END
GO
SELECT dbo.fn_StripCharacters('RoaR! rings the roll', '\R')
提供的输入:'RoaR! rings the roll'
预期输出:'oa! rings the roll'
收到的输出:'oa! ings the oll'
之前尝试过 RegEx(未成功):'\R'、'\x52'、'\n42'、'\u0052'、'R'.
我也试过整理数据库,没有结果:
COLLATE Latin1_General_100_CS_AS_SC;
微软 SQL 服务器管理工作室 12.0.4100.1
微软 .NET 框架 4.0.30319.34011
为什么要使用循环?您要做的就是用空字符串替换某个字母?您需要为输入指定排序规则以使其区分大小写。
select replace('RoaR! rings the roll' COLLATE Latin1_General_CS_AS, 'R', '')
正在寻找进行区分大小写搜索的方法。
CREATE FUNCTION [dbo].[fn_StripCharacters]
(
@String NVARCHAR(MAX),
@RemoveFollowing VARCHAR(255)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
SET @RemoveFollowing = '%['+@RemoveFollowing+']%'
WHILE PatIndex(@RemoveFollowing, @String) > 0
SET @String = Stuff(@String, PatIndex(@RemoveFollowing, @String), 1, '')
RETURN @String
END
GO
SELECT dbo.fn_StripCharacters('RoaR! rings the roll', '\R')
提供的输入:'RoaR! rings the roll'
预期输出:'oa! rings the roll'
收到的输出:'oa! ings the oll'
之前尝试过 RegEx(未成功):'\R'、'\x52'、'\n42'、'\u0052'、'R'.
我也试过整理数据库,没有结果:
COLLATE Latin1_General_100_CS_AS_SC;
微软 SQL 服务器管理工作室 12.0.4100.1
微软 .NET 框架 4.0.30319.34011
为什么要使用循环?您要做的就是用空字符串替换某个字母?您需要为输入指定排序规则以使其区分大小写。
select replace('RoaR! rings the roll' COLLATE Latin1_General_CS_AS, 'R', '')