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

你可能感兴趣的:(mssql)