我已經定義了一個UDF,它根據我提供的類型將某個字符串拆分爲多個子字符串。在SQL中使用用戶定義的函數根據2個參數返回表
ALTER FUNCTION Split (@MainString varchar(100), @Type char)
RETURNS @PartsTable TABLE
(
C1 varchar(10) NULL,
C2 varchar(10) NULL,
C3 varchar(50) NULL,
C4 varchar(10) NULL,
C5 varchar(50) NULL
)
AS
BEGIN
declare @pC1 as varchar(10)
declare @pC2 as varchar(10)
declare @pC3 as varchar(50)
declare @pC4 as varchar(10)
declare @pC5 as varchar(50)
-- cut string into pieces
/*
do some work
*/
-- fill return table
INSERT @PartsTable (C1, C2, C3, C4, C5)
select @pC1, @pC2, @pC3, @pC4, @pC5
RETURN
END
它爲我提供了正確的結果集:
C1 C2 C3 C4 C5
--------------------------------------
M.C. NULL Test NULL NULL
(1 row(s) affected)
當我這樣稱呼它:
SELECT *
FROM dbo.[Split]('Test M.C.', 'X')
我怎麼能在一個正常的SQL查詢結合這一點,我是想一個表格如下所示;
SELECT *
FROM MyTable X, dbo.Split(X.ColumnString, X.Type)
但這並不奏效。它給我提供了以下錯誤:
Msg 4121, Level 16, State 1, Line 7
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.SplitsKlantNaam_T1", or the name is ambiguous.
有誰知道我該怎麼稱呼這個UDF?
在此先感謝。
非常感謝!從未聽說過交叉應用方法。 Superstuff :) – Obelix