为什么SQL服务器管理工 作室将SS视为Umlaut-S(ß)?

问题描述 投票:0回答:1

当我运行以下查询时:

select charindex('ß','COMMISSIONING')

它返回6。

我特意选择ß作为函数,因为我认为它不太可能出现在我的任何数据中。这几个星期工作完全正常,但现在突然间它检测到没有ß的ß因此搞砸了我的功能。

有人请告诉我这是什么造成的?

我正在使用SQL Server 2016

sql sql-server syntax
1个回答
0
投票

因为,正如评论中所讨论的那样,SS是一个“大写”的ß。如果您不希望字符匹配,则需要将排序规则区分大小写。对于下面的内容,CHARINDEX表达式返回的值是0

SELECT C, charindex('ß',V.C)
FROM (VALUES('COMMISSIONING' COLLATE Latin1_General_CS_AS)) V(C);

SELECT C, charindex('ß',V.C)
FROM (VALUES('COMMISSIONING' COLLATE Latin1_General_CS_AI)) V(C);
© www.soinside.com 2019 - 2024. All rights reserved.