请教,这个结果是如何得到的?
这是刚才一个网友发的代码?
1.系统表master.dbo.spt_values,在这里起到的作用是什么呢?
2.最终结果如何得来的,我分析不出来?declare @str varchar(100)
set @str='1,4-9,10-13'select *
  from
  (
    select  number,SUBSTRING(@str,number,CHARINDEX(',',@str+',',number)-number) AS [col]
    from master.dbo.spt_values 
    where [type]='p' 
    AND number BETWEEN 1 AND LEN(@str)
    AND SUBSTRING(','+@str,number,1)=','
  ) X/*
number      col                                                                                                  
----------- -----------------
          1 1
          3 4-9
          7 10-13(所影响的行数为 3 行)
*/