使用带有前导&的LIKE搜索列。落后%

时间:2017-05-10 15:25:14

标签: sql-server sql-server-2008-r2 sql-server-2016

尝试在列中搜索给定的字符串,并希望显示该列中的任何位置。

Declare @searchText nvarchar(30) = 'an'

SELECT TOP 10
    CASE WHEN LEN(LastName) > 5 THEN LEFT(LastName,5) + '..' 
         ELSE LastName  end as DisplayName,
    LastName as FullName
From [dbo].[Employees]
WHERE 
    LastName like '%' + @searchText + '%'
GROUP BY 
    CASE WHEN LEN(LastName) > 5 THEN LEFT(LastName,5) + '..' 
         ELSE LastName  end,
    LastName

我在LastName列上有一个非聚集索引,但正如预期的那样,它没有被使用,因为领先&落后%。我理解FullText搜索是最好的选择。除此之外还有其他方法可以优化这个脚本吗?

0 个答案:

没有答案