当我运行以下查询时:
select charindex('ß','COMMISSIONING')
它返回6。
我特意选择ß作为函数,因为我认为它不太可能出现在我的任何数据中。这几个星期工作完全正常,但现在突然间它检测到没有ß的ß因此搞砸了我的功能。
有人请告诉我这是什么造成的?
我正在使用SQL Server 2016
因为,正如评论中所讨论的那样,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);