Sql server 2008 如果用户输入“返回结果的SQL查询”;ABCD-EFGH“;而不是",;ABCDEFGH“;

Sql server 2008 如果用户输入“返回结果的SQL查询”;ABCD-EFGH“;而不是",;ABCDEFGH“;,sql-server-2008,tsql,search,Sql Server 2008,Tsql,Search,我正在使用SQL Server 2008,需要编写一个查询,如果用户输入搜索字符串,如ABCD-EFGH或ABDEFGH等(即类似于的记录),则该查询应返回ABCDEFGH的记录 如何实现这一点?您需要使用某种editDistance算法,即Levenshtein距离、Jaro–Winkler距离来计算两个字符串之间的差异 查看此线程,了解作为udf实现的Levenshtein距离 您将像这样使用UDF(只是一个示例) 从dbo.myTable中选择* 其中dbo.editDistance(m

我正在使用SQL Server 2008,需要编写一个查询,如果用户输入搜索字符串,如
ABCD-EFGH
ABDEFGH
等(即类似于的记录),则该查询应返回
ABCDEFGH
的记录


如何实现这一点?

您需要使用某种editDistance算法,即Levenshtein距离、Jaro–Winkler距离来计算两个字符串之间的差异

查看此线程,了解作为udf实现的Levenshtein距离

您将像这样使用UDF(只是一个示例)

从dbo.myTable中选择*

其中dbo.editDistance(mycl,@SearchString)可能您想查看内置函数
的差异:我不确定它在这种特定情况下是否有帮助,但它可能会起到作用。
SELECT * FROM dbo.myTable
WHERE   dbo.editDistance(mycol,@SearchString)<2