2016-12-01 41 views
-1

我有一次用户搜索文本框,当有人输入名字时,它应该获取有相似声音的名字。如何在SQL Server 2008中动态地使用SOUNDEX

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

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

请建议。

回答

1

如果你的意思是你的函数中使用不同的字符串值,你可以用你的查询中的参数:

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

如果你想这个表中的比较值,你要么需要计算您查找值的soundexwherejoin条件范围内或添加到您的表中的列包含此值:

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; 
+0

@imdave感谢您的帮助。有效。 – Shardul

+0

@imdave但是为什么POOJA和PIYUSH的SOUNDX是相同的? – Shardul

+0

@Shardul这是你需要与微软就soundex函数的工作方式进行讨论的。还有其他选择,比如Metaphone:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=13574,您需要实施自己的解决方案,以达到您的满意。 – iamdave