【发布时间】:2014-03-04 22:08:09
【问题描述】:
我有以下 SQL-Select 语句:
SELECT [Name],
[No_]
FROM [Table]
WHERE dbo.fn_Levenshtein('Mobel Meller', [Name]) > 80
- 然后我得到:姓名,否
- 我想要什么:姓名、否、ReturnValue
我的解决方案如下,但由于性能原因,我不想为每条记录调用 两次 次函数......还有其他方法吗?
SELECT [Name],
[No_],
dbo.fn_Levenshtein('Mobel Meller', [Name])
FROM [Table]
WHERE dbo.fn_Levenshtein('Mobel Meller', [Name]) > 80
编辑:我不放心,如果它真的运行了两次。也不是如何检查。
Edit2:我的第二条语句的执行计划: 但是我看不懂这个 ExecutionPlan.. 那么它会运行两次吗?
【问题讨论】:
-
你确定它实际上每行运行两次算法吗?
-
this 有什么帮助吗?
-
@Phylogenesis 不,我不确定,但我也不知道如何检查它是否运行两次..
-
尝试运行它并查看执行计划。另外,看看这个stackoverflow.com/questions/1260281/… 如果它被调用两次,你可能需要使用 CTE
-
@RichAndrews 我确实为你上传了这个执行计划 =)
标签: sql sql-server tsql select