【问题标题】:How to use SOUNDEX dynamically in SQL Server 2008如何在 SQL Server 2008 中动态使用 SOUNDEX
【发布时间】:2016-12-01 11:05:10
【问题描述】:

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

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

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

请提出建议。

【问题讨论】:

    标签: string sql-server-2008 compare comparison


    【解决方案1】:

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

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

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

    【讨论】:

    • @imdave 但是为什么 POOJA 和 PIYUSH 的 SOUNDX 是一样的?
    • @Shardul 关于soundex 函数的工作原理,您需要与Microsoft 讨论一下。还有其他替代方案,例如 Metaphone:sqlteam.com/forums/topic.asp?TOPIC_ID=13574,您需要自己实施,这可能会让您更满意。
    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 2011-01-22
    • 2011-04-26
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多