3

複数の単語を含む長い文でSOUNDEX()and関数を使用したい。DIFFERENCE()私がこれまでに見つけたのは、これら 2 つの関数が 1 つの単語に対して機能することです。例えば:

"Stackoverflow is a very good website"

を使用するDIFFERENCE("Stackoverflow is a very good website")と、文の最初の単語、つまり「stackoverflow」の違いのみが一致しますが、残りの単語は一致しません。私は実際に SQL でスペル候補クエリを作成しようとしています。これは、間違って入力した場合に Google が正しいスペルを表示する方法です。

助けてください。

これが私のコードです:

DECLARE @Sound1 AS VARCHAR(4)
DECLARE @Sound2 AS VARCHAR(4)
DECLARE @Equals AS BIT
DECLARE @str1 AS VARCHAR(50)
DECLARE @str2 AS VARCHAR(50)
DECLARE @Difference AS INTEGER

SET @str1 = 'Stackoverflow is a very good website'
SET @str2 = 'Stackovxxflow'
SET @Sound1 = SOUNDEX(@str1) 
SET @Sound2 = SOUNDEX(@str2) 


IF(@Sound1 <> @Sound2)
BEGIN
    SET @Difference = DIFFERENCE(@str1, @str2)
    IF(@Difference <= 4)
    BEGIN
        SELECT TOP 1 [Address] FROM _Employee
        ORDER BY DIFFERENCE([Address],@str2) DESC
    END
END
4

0 に答える 0