join the MSSQLTips community

MSSQLTips.com - your daily source for SQL Server tips

Google
 
Web mssqltips.com

 
SQL Server CLR and T-SQL functions to parse a delimited string - MSSQLTips

MSSQLTips

MSSQLTips.com - your daily source for SQL Server tips
Welcome to MSSQLTips Sign in | Join | Help
in Search

SQL Server CLR and T-SQL functions to parse a delimited string

Last post 01-14-2009 9:15 AM by admin. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 01-14-2009 12:30 AM

    SQL Server CLR and T-SQL functions to parse a delimited string

    This post is related to this tip: SQL Server CLR and T-SQL functions to parse a delimited string

    http://www.mssqltips.com/tip.asp?tip=1665

  • 01-14-2009 3:37 AM In reply to

    Re: SQL Server CLR and T-SQL functions to parse a delimited string

    Hello,

    You can also use CTEs under SQL Server 2005 to do the same thing.

    The advantage is that you can specify a JOIN on a CTE :

    DECLARE @str VARCHAR(64) 
    SET @str = 'toto,titi,tutu,tata'; 
     
    WITH CTE (Deb, Fin) AS 

      SELECT 1 Deb, CHARINDEX(',', @str + ',') Fin 
     UNION ALL 
      SELECT Fin + 1, CHARINDEX(',', @str + ',', Fin + 1) 
      FROM CTE 
      WHERE CHARINDEX( ',', @str + ',', Fin + 1 ) > 0 

    SELECT SUBSTRING(@str, Deb , Fin - Deb), Deb, Fin 
    FROM CTE 
     
    -------------------------------------------
    DECLARE @String VARCHAR(64) SET @String = 'un,deux,trois,quatre,cinq'; 
    DECLARE @Separator CHAR(1) SET @Separator = ','; 
    WITH INDICES AS 

        SELECT 0 Deb, 1 Fin 
      UNION ALL 
        SELECT Fin, CHARINDEX(@Separator, @String, Fin) + LEN(@Separator) 
        FROM INDICES 
        WHERE Fin > Deb 

    SELECT SUBSTRING( 
              @String, 
              Deb, 
              CASE 
                WHEN Fin > LEN(@Separator) THEN Fin - Deb - LEN(@Separator) 
                ELSE LEN(@String) - Deb + 1 
              END 
            ) String, 
            Deb, 
            Fin, 
            LEN(@String) - Deb + 1 Lgr 
    FROM INDICES WHERE Deb > 0

  • 01-14-2009 9:15 AM In reply to

    Re: SQL Server CLR and T-SQL functions to parse a delimited string

    Thanks for the alternate approaches.

Page 1 of 1 (3 items)