如何比较 SQL Server 中的 2 个字符串,如果有任何大小写差异,则该字符串不应该为真

Van*_*nan 0 sql t-sql sql-server asp.net stored-procedures

尝试比较两个字符串,如果两个字符串都匹配,则应该返回 true,否则应该返回 false

在下面的示例中,由于大小写,两个字符串都不匹配。

有什么方法可以在 SQL Server 2016 示例中实现这一点:

Declare @str1 varchar (100) ='Yes'
Declare @str2 varchar (100) ='YES'
    Select 
         Case When @str1=@str2 then 'same'
         Else 'Not same'
    END
Run Code Online (Sandbox Code Playgroud)

预期结果:不一样

小智 5

您可以通过使用区分大小写的排序规则来完成此操作,例如 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
Run Code Online (Sandbox Code Playgroud)