如何在SQL Server 2008中动态使用SOUNDEX

时间:2016-12-01 11:05:10

标签: string sql-server-2008 compare comparison

我曾经有一个用户搜索文本框,当有人输入名字时,它应该获取具有相似声音的名称。

我检查了SOUNDEX和DIFFERENCE FUNCTIONS,但不知道如何动态使用它。

SELECT DIFFERENCE('DIPAK', 'DEEPAK');  
SELECT SOUNDEX ('DIPAK'), SOUNDEX ('DEEPAK');

请建议。

1 个答案:

答案 0 :(得分:1)

如果您的意思是在函数中使用不同的字符串值,则只需在查询中使用参数:

declare @Search nvarchar(50) = 'DIPAK';
select soundex(@Search);

如果要将其与表格中的值进行比较,则需要在soundexwhere条件下计算查找值的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;