|
USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=',',@string NVARCHAR(max))
RETURNS @ResultTab TABLE (
>
Res NVARCHAR(500)
)
AS
BEGIN
DECLARE @Num INT
IF(@string IS NOT NULL AND @string <> '' AND LEN(@string)>0)
BEGIN
IF(CHARINDEX(@separator,@string)>0)
BEGIN
SET @Num=0
WHILE (CHARINDEX(@separator,@string)>0)
BEGIN
SET @Num=@Num+1
INSERT INTO @ResultTab(Id,Res)
SELECT @Num,LEFT(@string,CHARINDEX(@separator,@string)-1)
SET @string=STUFF(@string,1,CHARINDEX(@separator,@string)-1+LEN(@separator),'')
END
IF(@string IS NOT NULL AND @string <> '')
BEGIN
INSERT INTO @ResultTab(Id,Res)
SELECT @Num+1,@string
END
END
ELSE
BEGIN
DELETE FROM @ResultTab
END
END
ELSE
BEGIN
DELETE FROM @ResultTab
END
RETURN
END |
|
|