Sql server SQL Server替换中的忽略大小写
在SQL server的replace so中是无论如何都要忽略的情况:Sql server SQL Server替换中的忽略大小写,sql-server,replace,Sql Server,Replace,在SQL server的replace so中是无论如何都要忽略的情况: Declare @replaceword = 'test' REPLACE(@var,@replaceword,'<i>' + @replaceword + '</i>') REPLACE()的匹配方式取决于所使用的特定排序规则。不同的排序规则可能有不同的比较规则。如果您查看REPLACE()文档,您将在底部附近看到一个示例,说明如何指定特定的排序规则: 选择替换('Das ist ein Te
Declare @replaceword = 'test'
REPLACE(@var,@replaceword,'<i>' + @replaceword + '</i>')
REPLACE()的匹配方式取决于所使用的特定排序规则。不同的排序规则可能有不同的比较规则。如果您查看REPLACE()文档,您将在底部附近看到一个示例,说明如何指定特定的排序规则:
选择替换('Das ist ein Test'COLLATE Latin1\u General\u BIN),
“测试”、“桌面”)
我对各种可能的排序规则还不够熟悉,不知道您将需要哪些排序规则,但这将为您指明正确的道路
不幸的是,我怀疑这还不够。替换时,确实会替换匹配的文本。您不能合并匹配的文本。我想您必须这样做:
Declare @replaceword1 varchar(100)
Declare @replaceword2 varchar(100)
select @replaceword1 = 'test'
select @replaceword2 = 'Test'
select REPLACE(
REPLACE('Test test',@replaceword1 COLLATE SQL_Latin1_General_Cp1_CS_AS,'<i>' +
@replaceword1 + '</i>'),
@replaceword2 COLLATE SQL_Latin1_General_Cp1_CS_AS,'<i>' + @replaceword2 + '</i>')
Declare@replaceword1 varchar(100)
声明@replaceword2 varchar(100)
选择@replaceword1='test'
选择@replaceword2='Test'
选择替换(
替换('Test Test',@replaceword1 COLLATE SQL\u Latin1\u General\u Cp1\u CS\u AS','+
@替换字1+“”),
@replaceword2将SQL\u Latin1\u General\u Cp1\u CS\u整理为“”+@replaceword2+“”)
注意:这将强制进行区分大小写的替换:SQL\u Latin1\u General\u Cp1\u CS\u AS
排序规则名称中的CS表示区分大小写
排序规则名称中的CI
指不区分大小写的
有关。的详细信息,可能需要添加排序规则字符串中的
CS
(或CI
)表示区分大小写(或不区分大小写)。另一方面,这取决于创建表时使用的排序规则(可能从SQL Server安装中继承)。默认情况下,我使用的数据库都不区分大小写,只有几个显式的区分大小写的列。
Declare @replaceword1 varchar(100)
Declare @replaceword2 varchar(100)
select @replaceword1 = 'test'
select @replaceword2 = 'Test'
select REPLACE(
REPLACE('Test test',@replaceword1 COLLATE SQL_Latin1_General_Cp1_CS_AS,'<i>' +
@replaceword1 + '</i>'),
@replaceword2 COLLATE SQL_Latin1_General_Cp1_CS_AS,'<i>' + @replaceword2 + '</i>')