我将代码简化为
SELECT TOP(1) e.name
FROM EMPLOYEE AS e
ORDER BY dbo.editDist(e.name, 'Robert Johnson') ASC
其中EMPLOYEE
是包含名称和其他信息的表,editDist
是用户创建的函数,它将两个字符串作为输入并返回一个int值。
SQL抱怨:
'子查询返回的值超过1。这是不允许的 子查询跟随=,!=,<,< =,>,> =或当子查询用作 一个表达。'
据我所知TOP(1)
肯定会返回一行,而这一行会导致错误。可能是什么问题?