寻找一种进行区分大小写搜索的方法。
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!滚动'
预期输出:' oa!滚动'
收到的输出:' oa! oll'
RegEx之前尝试过(没有成功):' \ R',' \ x52',' \ n42',' \ u0052' ,' R'。
我也尝试整理数据库,但没有结果:
COLLATE Latin1_General_100_CS_AS_SC;
Microsoft SQL Server Management Studio 12.0.4100.1
Microsoft .NET Framework 4.0.30319.34011
答案 0 :(得分:2)
你为什么要使用循环?您要做的就是用空字符串替换某个字母?您需要为输入指定排序规则,使其区分大小写。
select replace('RoaR! rings the roll' COLLATE Latin1_General_CS_AS, 'R', '')