一、創(chuàng)建測(cè)試表
?Employees
二、創(chuàng)建表值函數(shù)
-- DROP FUNCTION TableIntSplit;
CREATE FUNCTION TableIntSplit(@Text NVARCHAR(4000),@Sign NVARCHAR(4000))
RETURNS @tempTable TABLE(Id INT )
AS
BEGIN
DECLARE @StartIndex INT
DECLARE @FindIndex INT
DECLARE @Content VARCHAR(4000)
SET @StartIndex = 1
SET @FindIndex=0
WHILE(@StartIndex <= LEN(@Text))
BEGIN
SELECT @FindIndex = CHARINDEX(@Sign,@Text,@StartIndex)
IF(@FindIndex =0 OR @FindIndex IS NULL)
BEGIN
SET @FindIndex = LEN(@Text)+1
END
SET @Content = LTRIM(RTRIM(SUBSTRING(@Text,@StartIndex,@FindIndex-@StartIndex)))
SET @StartIndex = @FindIndex+1
INSERT INTO @tempTable ([Id]) VALUES (convert(int, @Content))
END
RETURN
END;
?測(cè)試文章來源:http://www.zghlxwxcb.cn/news/detail-617435.html
select * from Employees(NOLOCK)
select * from dbo.TableIntSplit('1,2,3,4,5,6',',')
select t1.LastName,t2.Id from Employees(NOLOCK) t1 join dbo.TableIntSplit('1,2,3,4,5,6',',') t2 on t1.EmployeeID=t2.Id
文章來源地址http://www.zghlxwxcb.cn/news/detail-617435.html
到了這里,關(guān)于sql server表值函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!