急求一段sql,请大神们帮忙……

城池523 2013-03-13 05:28:25
declare @sql varchar(max)
declare @field varchar(50)
set @sql='proguid,mainguid'

想要的结果:
set @field ='a.proguid,a.mainguid'

请哪位大侠帮忙转换一下……
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqlkxr 2013-03-14
  • 打赏
  • 举报
回复
学习了,替换字符串替换的真有一定的技巧性。就看想到想不到了。
习惯性蹭分 2013-03-13
  • 打赏
  • 举报
回复

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
發糞塗牆 2013-03-13
  • 打赏
  • 举报
回复
原来真的是替换字符串啊,哥,你倒说清楚嘛
城池523 2013-03-13
  • 打赏
  • 举报
回复
引用 2 楼 Vidor 的回复:
set @field = 'a.' + replace(@sql, ',', ',a.')
此方法较简单,可以借鉴。
發糞塗牆 2013-03-13
  • 打赏
  • 举报
回复
没看懂,替换字符串?
Vidor 2013-03-13
  • 打赏
  • 举报
回复
set @field = 'a.' + replace(@sql, ',', ',a.')
  • 打赏
  • 举报
回复
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

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧