如何比较 SQL 服务器中的 2 个字符串,如果大小写不同则不应该为真
How to compare 2 strings in SQL server which should not be true if any case difference
尝试比较 2 个字符串,如果两个字符串匹配则应该 return 为真,否则应该 return 为假
在下面的示例中,两个字符串因大小写不匹配。
有什么方法可以在 SQL Server 2016 中实现这个
示例:
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When @str1=@str2 then 'same'
Else 'Not same'
END
预期结果:不一样
您可以使用区分大小写的排序规则来做到这一点,例如Latin1_General_CS_AS。
您可以为数据库设置默认排序规则,但也可以在特定查询中应用该排序规则。你的情况:
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When @str1 COLLATE Latin1_General_CS_AS = @str2 COLLATE Latin1_General_CS_AS then 'same'
Else 'Not same'
END
另一种选择是
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When HASHBYTES( 'sha1', @str1)=HASHBYTES('sha1', @str2) then 'same'
Else 'Not same'
END
SQL Case Sensitive String Compare
尝试比较 2 个字符串,如果两个字符串匹配则应该 return 为真,否则应该 return 为假
在下面的示例中,两个字符串因大小写不匹配。
有什么方法可以在 SQL Server 2016 中实现这个 示例:
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When @str1=@str2 then 'same'
Else 'Not same'
END
预期结果:不一样
您可以使用区分大小写的排序规则来做到这一点,例如Latin1_General_CS_AS。 您可以为数据库设置默认排序规则,但也可以在特定查询中应用该排序规则。你的情况:
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When @str1 COLLATE Latin1_General_CS_AS = @str2 COLLATE Latin1_General_CS_AS then 'same'
Else 'Not same'
END
另一种选择是
Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
Select
Case When HASHBYTES( 'sha1', @str1)=HASHBYTES('sha1', @str2) then 'same'
Else 'Not same'
END
SQL Case Sensitive String Compare