SQL Server LIKE子句问题

tam*_*esz 4 sql sql-server

这可能是一件非常简单的事我无法忽视,但它让我疯狂.

基本要点是我在SQL Server 2014中有一个非常简单的表,叫做Products,它包含一些ProductNames列(nvarchar(max)).我输入了一些测试字符串,例如

Caly
Calyd
Cali
Cal
Taly
Blical
Blacaly
Run Code Online (Sandbox Code Playgroud)

我在这张桌子上执行一个非常简单的SELECT:

SELECT *
FROM Products
WHERE ProductName LIKE '%Cal%'
Run Code Online (Sandbox Code Playgroud)

这就是问题,我只是回过头来看看这些结果

Cali
Cal
Blical
Run Code Online (Sandbox Code Playgroud)

注意丢失的Caly和Blacaly.但如果我搜索'%Caly%',我会收回预期的结果:

Caly
Calyd
Blacaly
Run Code Online (Sandbox Code Playgroud)

或者,如果我按预期搜索"%Ca%",

Caly
Calyd
Cali
Cal
Blical
Blacaly
Run Code Online (Sandbox Code Playgroud)

所以真的,给了什么,我在这里完全失去了.'Cal'是某种奇怪的复活节彩蛋吗?侏儒吃我的结果,还是什么?

(顺便说一句,我在MySQL中尝试过同样的事情,就像测试一样,它在那里按预期工作.)

Jak*_*rtz 6

您正在使用Hungarian_CI_AS排序规则.在匈牙利语字母表有向"立法院"是一个单独的字母.

因此,例如"Caly"是一个3个字母的单词 - "C","a","ly".