Comma-separated String into Table's Column in SQL Server

前端 未结 3 1986
一个人的身影
一个人的身影 2020-12-11 11:39

I am working with SQL Server, I have successfully converted a table\'s rows into comma-separated values, now I want to convert that string of comma-separated values back to

3条回答
  •  一生所求
    2020-12-11 12:10

    Try this Function

    CREATE FUNCTION UF_CSVToTable_new(@psCSString VARCHAR(8000))
    RETURNS @otTemp TABLE(sID VARCHAR(20))
    AS
    BEGIN
     DECLARE @sTemp VARCHAR(10)
      WHILE LEN(@psCSString) > 0
      BEGIN
      SET @sTemp = LEFT(@psCSString, ISNULL(NULLIF(CHARINDEX(',', @psCSString) - 1, -1),
                        LEN(@psCSString)))
      SET @psCSString = SUBSTRING(@psCSString,ISNULL(NULLIF(CHARINDEX(',', @psCSString), 0),
                                   LEN(@psCSString)) + 1, LEN(@psCSString))
      INSERT INTO @otTemp VALUES (@sTemp)
      END
    RETURN
    END
    

    Usage

    DECLARE @str AS varchar(Max)
    SET @str = '0.00,0.00,1576.95,0.00,4105.88,1017.87,0.00,6700.70'
    SELECT * FROM UF_CSVToTable_new(@str)
    

    Result

    enter image description here

提交回复
热议问题