我曾经有一个用户搜索文本框,当有人输入名称时,它应该获取具有相似声音的名称。
我已经检查了Soundex和差异功能,但不知道如何动态使用它。
SELECT DIFFERENCE('DIPAK', 'DEEPAK');
SELECT SOUNDEX ('DIPAK'), SOUNDEX ('DEEPAK');
请建议。
如果您的意思是在函数中使用不同的字符串值,则可以在查询中使用参数:
declare @Search nvarchar(50) = 'DIPAK';
select soundex(@Search);
如果要将其与表中的值进行比较,则需要在where
或join
条件中计算查找值的soundex
或在保存此值的表中添加一列:
declare @SearchSoundex nvarchar(10) = soundex('DIPAK');
select *
from Names
where soundex(FirstName) = @SearchSoundex;
declare @SearchSoundex nvarchar(10) = soundex('DIPAK');
select *
from Names
where FirstNameSoundex = @SearchSoundex;