如何在 SQL Server 中进行空格不敏感搜索?
例如,这些城市名称应该被认为是相等的:
San Remo
Sanremo
我知道如何进行简单的不区分大小写和不区分重音的搜索,但我没有发现任何不区分空格的搜索。
我可以使用排序规则或漂亮的功能吗?或者我应该在我的代码中预处理城市名称?
如何在 SQL Server 中进行空格不敏感搜索?
例如,这些城市名称应该被认为是相等的:
San Remo
Sanremo
我知道如何进行简单的不区分大小写和不区分重音的搜索,但我没有发现任何不区分空格的搜索。
我可以使用排序规则或漂亮的功能吗?或者我应该在我的代码中预处理城市名称?
创建一个新的计算 PERSISTED 列。这将允许创建索引。即使没有索引,这也比直接在列上替换要好得多:
ALTER TABLE dbo.YourTable
ADD ComputedCol AS REPLACE(YourColumn, ' ', '') PERSISTED
你可以搜索
REPLACE (column_name, ' ', '') like '%yourCriteria%
而不仅仅是
column_name like '%yourCriteria%
我建议不要这样做,因为文本搜索更消耗资源。更好的选择是添加一个包含替换文本的新列,将其编入索引并在其上进行搜索。