我從有人在這裏這樣的功能:如何在sproc中調用此函數?
create FUNCTION [dbo].[fnSplitString] (@s varchar(512),@sep char(1))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)
通常在存儲過程的條款我稱這種類型的函數是這樣的:
WHERE u.[Fleet] IN (SELECT [VALUE] FROM dbo.udf_GenerateVarcharTableFromStringList(@Fleets, ','))
如何去調用上述功能類似的方式?
謝謝!
您也可能希望將列表選擇到表中,然後根據表選擇。通常使用每行評估where子句中的函數。 – StingyJack 2010-09-08 20:42:59