我对Microsoft SQL Server中使用的默认字符串比较方法感到困惑。到目前为止,我一直在使用UPPER(
)和LOWER()
函数在Microsoft SQL Server上执行任何字符串比较。
但是必须知道默认情况下Microsoft SQL Server不区分大小写,我们需要在安装Microsoft SQL Server时更改排序规则以使其区分大小写。但是,如果是这种情况,那么UPPER和LOWER()
函数的用途是什么。
答案 0 :(得分:1)
正如您所发现的,upper
和lower
仅在应用了区分大小写的排序规则时才用于比较,但这并不会使它们变得无用。
例如,Upper
和Lower
可用于格式化结果。
select upper(LicencePlate) from cars
您可以通过应用表格设计中的列或特定比较来应用排序而无需重新安装,即:
if 'a' = 'A' collate latin1_general_cs_as
select '1'
else
select '2'
if 'a' = 'A' collate latin1_general_ci_as
select '3'
else
select '4'
请参阅http://technet.microsoft.com/en-us/library/aa258272(v=sql.80).aspx
答案 1 :(得分:1)
如果您想比较区分大小写的字符串,这可能是您要查找的语法
IF @STR1 COLLATE Latin1_General_CS_AS <> @STR2 COLLATE Latin1_General_CS_AS
PRINT 'NOT MATCH'