SQL Server : Split string to row

前端 未结 3 1029
一整个雨季
一整个雨季 2020-12-18 14:34

How to turn data from below:

CODE COMBINATION   USER
1111.111.11.0      KEN; JIMMY
666.778.0.99       KEN
888.66.77.99       LIM(JIM); JIMMY
<
3条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-18 14:54

    You need to use a UDF for splitting it on each row

    CREATE FUNCTION [DBO].[FN_SPLIT_STR_TO_COL] (@T AS VARCHAR(4000) )
    RETURNS
     @RESULT TABLE(VALUE VARCHAR(250))
    AS
    BEGIN
         SET @T= @T+';'
           ;WITH MYCTE(START,[END]) AS(
    
        SELECT 1 AS START,CHARINDEX(';',@T,1) AS [END]
        UNION ALL
        SELECT [END]+1 AS START,CHARINDEX(';',@T,[END]+1)AS [END] 
        FROM MYCTE WHERE [END]

    Now query on your table by calling above function with CROSS APPLY

      SELECT [CodeCombination],FN_RS.VALUE FROM TABLE1
      CROSS APPLY
     (SELECT * FROM [DBO].[FN_SPLIT_STR_TO_COL] (User))           
      AS FN_RS
    

提交回复
热议问题