我曾经有一个用户搜索文本框,当有人输入名字时,它应该获取具有相似声音的名称。
我检查了SOUNDEX和DIFFERENCE FUNCTIONS,但不知道如何动态使用它。
SELECT DIFFERENCE('DIPAK', 'DEEPAK');
SELECT SOUNDEX ('DIPAK'), SOUNDEX ('DEEPAK');
请建议。
答案 0 :(得分:1)
如果您的意思是在函数中使用不同的字符串值,则只需在查询中使用参数:
declare @Search nvarchar(50) = 'DIPAK';
select soundex(@Search);
如果要将其与表格中的值进行比较,则需要在soundex
或where
条件下计算查找值的join
或添加列你的表中包含这个值:
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;