CREATE FUNCTION [dbo].[StrSplit]
(
@str nvarchar(max), --源字符串
@split varchar(32) --分隔符
)
RETURNS @t TABLE(col nvarchar(max))
AS
BEGIN
WHILE(charindex(@split,@str)<>0)
BEGIN
INSERT @t(col) VALUES(substring(@str,1,charindex(@split,@str)-1))
SET @str = stuff(@str,1,charindex(@split,@str),'')
END
INSERT @t(col) VALUES(@str)
RETURN
END
(
@str nvarchar(max), --源字符串
@split varchar(32) --分隔符
)
RETURNS @t TABLE(col nvarchar(max))
AS
BEGIN
WHILE(charindex(@split,@str)<>0)
BEGIN
INSERT @t(col) VALUES(substring(@str,1,charindex(@split,@str)-1))
SET @str = stuff(@str,1,charindex(@split,@str),'')
END
INSERT @t(col) VALUES(@str)
RETURN
END
调用例子:
SELECT * FROM dbo.StrSplit('1,2,3,4',',')
显示结果:
col
-------------------------------
1
2
3
4