declare @sql varchar(max)
 declare @field varchar(50)
 set @sql='proguid,mainguid'
 
想要的结果:
 set @field ='a.proguid,a.mainguid'
 
请哪位大侠帮忙转换一下…… sql

解决方案 »

  1.   

    declare @sql varchar(max)
     declare @field varchar(50)
     set @sql='proguid,mainguid'
    set @field='a.'+left(@sql,charindex(',',@sql))+'a.'+stuff(@sql,1,charindex(',',@sql),'')
    print @field
      

  2.   

    set @field = 'a.' + replace(@sql, ',', ',a.')
      

  3.   


    declare @sql varchar(max)
     declare @field varchar(50)
     set @sql='proguid,mainguid,proguid,mainguid,proguid,mainguid,proguid,mainguid'
    declare @int int
    set @int=CHARINDEX(',',@sql)
    set @field=''
    set @sql=@sql+','
    while @int>0
    begin
    declare @val varchar(10)
    set @val=',a.'+LEFT(@sql,@int-1)
    set @sql=RIGHT(@sql,len(@sql)-@int)
    set @int=CHARINDEX(',',@sql)
    set @field=@field+@val
    end
    set @field=STUFF(@field,1,1,'')
    select @field