How to split a string after specific character in SQL Server and update this value to specific column

前端 未结 8 1200
死守一世寂寞
死守一世寂寞 2020-12-01 09:59

I have table with data 1/1 to 1/20 in one column. I want the value 1 to 20 i.e value after \'/\'(front slash) is updated into other column in same

8条回答
  •  伪装坚强ぢ
    2020-12-01 10:39

    Use CHARINDEX. Perhaps make user function. If you use this split often.
    I would create this function:

    CREATE FUNCTION [dbo].[Split]
    (
        @String VARCHAR(max),
        @Delimiter varCHAR(1)
    )
    RETURNS TABLE 
    AS
    RETURN 
    (
        WITH Split(stpos,endpos) 
        AS(
            SELECT 0 AS stpos, CHARINDEX(@Delimiter,@String) AS endpos
            UNION ALL
            SELECT endpos+1, CHARINDEX(@Delimiter,@String,endpos+1)
                FROM Split
                WHERE endpos > 0
        )
        SELECT 'INT_COLUMN' = ROW_NUMBER() OVER (ORDER BY (SELECT 1)),
            'STRING_COLUMN' = SUBSTRING(@String,stpos,COALESCE(NULLIF(endpos,0),LEN(@String)+1)-stpos)
        FROM Split
    )
    GO
    

提交回复
热议问题