SQL UDF в состоянии WHERE - PullRequest
       14

SQL UDF в состоянии WHERE

2 голосов
/ 06 января 2010

Я хочу написать запрос вроде этого:

CREATE PROCEDURE DupFinder
@FirstName varchar(20),
@LastName varchar(20)

AS

SELECT CustId 
  FROM Cust c 
 WHERE [dbo].[fn_MatchConfidence](@FirstName + ' ' + @LastName,
                                  [dbo].fn_createCustHash (CustId)) > .8

Запуск пользовательской функции fn_MatchCondifence (которая принимает два varchars и возвращает число) по всей таблице Cust. CreateCustHash просто создает строку из FirstName и LastName с пробелом в середине.

Как я могу это сделать?

1 Ответ

6 голосов
/ 06 января 2010

Не используйте скалярную функцию. Они действительно плохие.

http://msmvps.com/blogs/robfarley/archive/2009/12/05/dangers-of-begin-and-end.aspx

Вместо этого используйте встроенную табличную функцию.

...