【发布时间】:2011-08-01 23:45:22
【问题描述】:
我有一个像这样工作的函数:select score from comparestrings(@String1,@string2)
我需要将表中的每一行(@string2)与@string1 进行比较。没有While循环和游标是否可能?
我的函数来自simmetrics library
函数代码如下:
ALTER FUNCTION
[dbo].[BlockDistance](@firstword [nvarchar](255), @secondword [nvarchar](255))
RETURNS [float] WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [TextFunctions].[StringMetrics].[BlockDistance]
【问题讨论】:
-
你可以使用 CROSS APPLY 和表值函数
-
你能举个小例子吗?我正在执行以下操作:SELECT b.score FROM MyTable a CROSS APPLY BlockDistance ('sample text', a.SampleText) b 并获取:无效的对象名称。我在网上发现我应该将标量函数转换为表值函数才能使其工作,但我实际上如何转换呢?