2015-10-19 58 views
0

我有一個表有很多SSN,需要傳遞給UDF來驗證它並說出它是否有效。將列傳遞給UDF

例如,當我執行以下查詢我得到一個錯誤:

SELECT [dbo].[f_Is_Valid_SSN_Regex]((select SSN from dbo.table_name)) 

的錯誤,我得到

Msg 512, Level 16, State 1, Line 1 
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. 

我不認爲這需要一個光標(我不想有那),但有沒有辦法使用這個函數驗證該列上的所有記錄?

感謝,

RV

回答

2

你會使用常規select此:

SELECT SSN, [dbo].f_Is_Valid_SSN_Regex(SSN) 
from dbo.table_name; 

如果你想看看他們的所有通過,則使用聚合:

SELECT MIN(dbo.f_Is_Valid_SSN_Regex(SSN)) 
from dbo.table_name; 

如果功能n對於失敗返回0,對於傳遞返回1,那麼只有全部通過,這將返回1。

+0

優秀。這工作得很好。儘管我現在只能得到全0。但這可能是一個單獨的問題。但現在,這個問題已經解決。非常感謝戈登! – rvphx