How to split string and insert values into table in SQL Server

前端 未结 8 640
青春惊慌失措
青春惊慌失措 2020-11-29 12:36

I have a string like this:

72594206916,2,1/2/08,Tacoma,WA:72594221856,5,5/7/13,San Francisco,CA:72594221871,99,12/30/12,Dallas,TX

This is b

8条回答
  •  星月不相逢
    2020-11-29 12:59

    Something similar to what M.Ali gave above, but shorter:

    Use [Database_Name]
    Go;
    
     CREATE FUNCTION Split
    (
    @RowData nvarchar(MAX),
    @SplitOn nvarchar(MAX)
    )  
    RETURNS @RtnValue table 
    (
    Data nvarchar(MAX)
    ) 
    AS  
    BEGIN 
    Declare @Cnt int
    Set @Cnt = 1
    
    While (Charindex(@SplitOn,@RowData)>0)
    Begin
        Insert Into @RtnValue (data)
        Select 
            Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))
    
        Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
        Set @Cnt = @Cnt + 1
    End
    
    Insert Into @RtnValue (data)
    Select Data = ltrim(rtrim(@RowData))
    
    Return
    END
    

    Then select from the function as in the above example:

    USE [Database_Name]
    GO
    declare @testString varchar(100)
    set @testString = '72594206916,2,1/2/08,Tacoma,WA:72594221856,5,5/7/13,San   Francisco,CA:72594221871,99,12/30/12,Dallas,TX'
    
    SELECT * FROM Split(@testString, ',')
    

提交回复
热议问题