Split comma separated string table row into separate rows using TSQL

后端 未结 3 1155
情歌与酒
情歌与酒 2020-12-18 09:58

Say I have a query that returns the following

ID       SomeValue
1        a,b,c,d
2        e,f,g

Id like to return this as follows:

3条回答
  •  旧巷少年郎
    2020-12-18 10:41

    Alternatively, you could use XML like so:

    DECLARE @yourTable TABLE(ID INT,SomeValue VARCHAR(25));
    
    INSERT INTO @yourTable
    VALUES  (1,'a,b,c,d'),
            (2,'e,f,g');
    
    WITH CTE
    AS
    (
        SELECT  ID,
                [xml_val] = CAST('' + REPLACE(SomeValue,',','') + '' AS XML)
        FROM @yourTable
    )
    
    SELECT  ID,
            [SomeValue] = col.value('.','VARCHAR(100)')
    FROM CTE
    CROSS APPLY [xml_val].nodes('/t') CA(col)
    

提交回复
热议问题