我正在基于特定的nvarchar
列的首字母而不是通常基于结果数量进行分页。
我面临的挑战不是使用LIKE
运算符还是等号(=
)运算符来过滤结果。
select *
from table
where name like @firstletter + '%'
对比。
select *
from table
where left(name, 1) = @firstletter
我曾尝试在网上搜索这两者之间的速度比较,但很难找到任何结果,因为大多数搜索结果都与LEFT JOINs
有关,而不是LEFT
函数。
LIKE
)可以利用name
索引,而第二个方法(针对列值的函数)则不能。 - Marcus Adamslike
的可搜索性使其成为 SQL Server 中优秀的默认选择。即使没有索引,它也可以更好地利用列上的字符串统计信息,并为匹配行数提供更好的基数估计。 - Martin Smith