模糊逻辑排序

时间:2013-06-10 22:10:06

标签: sql-server-2008 fuzzy-logic

首先,我为糟糕的表格结构道歉,这不是我的决定,而是存在于我之前。

无论如何,我有一个表tbl_cities,它是一个列表,你猜对了,城市(但无论出于何种原因存储在[desc]列中)。我想制作一个漂亮的AJAX文本输入,当您键入时,它会尝试找出您正在键入的城市并将其作为建议提供。这有点像this例子。所以我的查询看起来像这样

SELECT [desc] FROM tbl_cities WHERE [desc] LIKE 'phil%'

哪个工作正常。但是,我看到这个表中有一堆拼写错误,所以我想添加模糊逻辑。我想继续让城市与他们输入的第一个字母相匹配,所以我有这个问题。

SELECT [desc] FROM tbl_cities WHERE [desc] LIKE 'phil%'
OR DIFFERENCE('phil', [desc])>3

现在我想根据模糊逻辑部分之前的[desc] LIKE 'phil%'进行排序。因此,在此示例中,费城应出现在随机城市之前,例如PAOLAPOWELL

1 个答案:

答案 0 :(得分:2)

我会尝试这样的事情:

order by case when [desc] like 'phil%' then 0 else 1 end, [desc]