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