Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server替换中的忽略大小写_Sql Server_Replace - Fatal编程技术网

Sql server SQL Server替换中的忽略大小写

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

在SQL server的replace so中是无论如何都要忽略的情况:

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>')