split comma seprate value from table in sql server

前端 未结 3 1182
迷失自我
迷失自我 2021-01-25 10:21

i have one SQL table in which many records, i want to know how many names are in it and how much time one name in it.

Table NameMst

Name

jo         


        
3条回答
  •  余生分开走
    2021-01-25 11:04

    DECLARE @table1 TABLE ( id VARCHAR(50) )
    DECLARE @table TABLE ( id1 INT,id VARCHAR(50) )
    INSERT INTO @table (id1,id) values (1, 'JOHN,rom')
    INSERT INTO @table (id1,id) values (2,'Micky,Raju')
    INSERT INTO @table (id1,id) values (2,'Micky,Raju')
    INSERT INTO @table (id1,id) values (2,'Micky,Raju')
    DECLARE @Min INT,@Max INT ,@str1 VARCHAR(100),@str2 VARCHAR(100)
    
    DECLARE @x INT = 0
    DECLARE @firstcomma INT = 0
    DECLARE @nextcomma INT = 0
    
    SELECT @x =   LEN(id) - LEN(REPLACE(id, ',', '')) + 1 from @table -- number of ids in id_list
    
    WHILE @x > 0
        BEGIN
            SELECT @nextcomma =  CASE WHEN CHARINDEX(',', id, @firstcomma + 1) = 0
                                  THEN LEN(id) + 1
                                  ELSE CHARINDEX(',', id, @firstcomma - 1)
                             END FROM @table
                             --select @nextcomma
            INSERT  INTO @table1
            SELECT  ( SUBSTRING(id, @firstcomma + 1, (@nextcomma - @firstcomma) - 1) ) FROM @table 
            SELECT @firstcomma = CHARINDEX(',', id, @firstcomma + 1)FROM @table
            SET @x = @x - 1
        END
    
    SELECT  DISTINCT id,COUNT(id)
    FROM    @table1
    GROUP BY id
    

提交回复
热议问题