SQL根据下标,返回split分割后字符串

-- =============================================
--
Author:
--
Create date:
--
Description: 根据下标(0开始),返回split分割后字符串,越界返回空字符串
-- eg:SELECT dbo.Split_GetByIndex('w1,w2,,,,w,w,ew',',',1)
--
=============================================
CREATE FUNCTION [dbo].[Split_GetByIndex]
(
@SplitStr NVARCHAR(max),
@SplitChar NVARCHAR(10),
@Index INT
)
RETURNS nvarchar(50)
AS
BEGIN
DECLARE @i INT
DECLARE @result NVARCHAR(100)
SET @result=''
SET @SplitStr=LTRIM(RTRIM(@SplitStr))
SET @i=0
WHILE CHARINDEX(@SplitChar,@SplitStr)>0
BEGIN
IF @i=@Index
BEGIN
SET @result=LEFT(@SplitStr,CHARINDEX(@SplitChar,@SplitStr)-1)
BREAK
END
SET @i=@i+1
SET @SplitStr=RIGHT(@SplitStr,LEN(@SplitStr)-CHARINDEX(@SplitChar,@SplitStr))
END
IF CHARINDEX(@SplitChar,@SplitStr)=0 AND @i=@Index
BEGIN
SET @result=@SplitStr
END

RETURN @result

END
posted @ 2011-11-16 09:46  人来人往  阅读(1656)  评论(0编辑  收藏  举报