2016-12-01 8 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); 

あなたは表の値にこれを比較したい場合は、あなたが計算するのいずれかが必要になりますあなたの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; 
+0

@imdaveご協力ありがとうございます。出来た。 – Shardul

+0

@imdaveしかし、なぜPOOJAとPIYUSHのSOUNDXは同じですか? – Shardul

+0

@Shardulそれは、あなたが 'soundex'関数がどのように機能するかに関してマイクロソフトと一緒に取る必要があるものです。 Metaphoneのような選択肢があります:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=13574あなた自身を実装する必要があります。 – iamdave

関連する問題