我想在包含多个单词的长句子上使用SOUNDEX()
和函数。DIFFERENCE()
到目前为止,我发现这两个功能都适用于单个单词。例如:
"Stackoverflow is a very good website"
如果我使用DIFFERENCE("Stackoverflow is a very good website")
,它只会匹配句子第一个单词的差异,即“stackoverflow” - 但不匹配其余单词。我实际上是在尝试在 SQL 中构建一个拼写建议查询,如果我们输入错误,谷歌会向我们显示正确的拼写。
请帮忙。
这是我的代码:
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