name  enabled   description rely_job
Job_Temp    1   Job_Temp1      Job_Temp1 Job_Temp2 Job_Temp3 Job_Temp4类似上面的一个格式,我想要下面的格式name  enabled   description rely_job
Job_Temp    1   Job_Temp1      Job_Temp1
Job_Temp    1   Job_Temp1      Job_Temp2
Job_Temp    1   Job_Temp1      Job_Temp3
Job_Temp    1   Job_Temp1      Job_Temp4行转列似乎搞不定这种的,求解

解决方案 »

  1.   


    select a.name,a.enabled,a.description,
        substring(a.rely_job,b.number,charindex(' ',a.rely_job+' ',b.number)-b.number) rely_job
    from tb a,master..spt_values b
    where b.type = 'p' and b.number between 1 and len(a.rely_job)
        and substring(' '+a.rely_job,b.number,1) = ' '
      

  2.   


    create table tb(name varchar(100),enabled int, description varchar(100), rely_job varchar(100))
    insert tb
    select 'Job_Temp' ,1 ,'Job_Temp1','Job_Temp1 Job_Temp2 Job_Temp3 Job_Temp4'
    select tb.name,enabled, description,
           rely_job=substring(rely_job,number,charindex(' ',rely_job+' ',number)-number) from tb,master..spt_values a
    where type='p' and charindex(' ',' '+rely_job,number)=numberdrop table tb
      

  3.   

    楼上两位都不错,求解释,特别关于这点
     rely_job=substring(rely_job,number,charindex(' ',rely_job+' ',number)-number)
      

  4.   

    取字串:第二位的位置减去第一位的位置
    第一位的位置是从number 
    第二位的位置:charindex(' ',rely_job+' ',number)
    相减得到长度:charindex(' ',rely_job+' ',number)-number
      

  5.   

    楼上,这个方式和
    substring(rely_job,number,charindex(' ',rely_job+' ',number)-number) as rely_job
    有什么区别,我印象有种表达式是用类似的=号,是这个么