字符插入

intellectual123456 2008-09-01 09:20:06
declare @partnr varchar(100),
@start int,
@len int
select @start=1
select @partnr='abcdefghieeefffgggeeeefedef'

select @partnr=stuff(@partnr,@start,0,',')
select @len=len(@partnr)
--print @len


while @len>0
--and @start<len(@partnr)
begin
select @len=@len-4
select @start=@start+4
select @partnr=stuff(@partnr,@start,0,',')
end
print @partnr

--要三位加上一个','怎么不对?请看看
--结果必须是,abc,def,ghi,eee,fff,ggg,eee,efe,def
...全文
105 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhonlonehou 2008-09-01
  • 打赏
  • 举报
回复
顶大乌龟~~
hyrongg 2008-09-01
  • 打赏
  • 举报
回复

declare @partnr varchar(100), @start int, @len int
select @start=1
select @partnr='abcdefghieeefffgggeeeefedefyy'

select @partnr=stuff(@partnr,@start,0,',')
select @len=len(@partnr)


while @len>0
--and @start <len(@partnr)
begin
select @len=@len-3
select @start=@start+4
if (@len>1)
begin
select @partnr=stuff(@partnr,@start,0,',')
end
end
print @partnr




,abc,def,ghi,eee,fff,ggg,eee,efe,def,yy
青锋-SS 2008-09-01
  • 打赏
  • 举报
回复
declare @partnr varchar(100),
@start int,
@len int
select @start=1
select @partnr='abcdefghieeefffgggeeeefedef'

select @partnr=stuff(@partnr,@start,0,',')
select @len=len(@partnr)

select @start=@len/3+1
while @start>2
begin
select @start=@start-1
select @partnr=stuff(@partnr,@start*3-1,0,',')
end
print @partnr

---
,abc,def,ghi,eee,fff,ggg,eee,efe,def
intellectual123456 2008-09-01
  • 打赏
  • 举报
回复
老乌龟经验老道!谢谢!
dawugui 2008-09-01
  • 打赏
  • 举报
回复
--如果字符串位数不是3的倍数,得加一句.

declare @partnr varchar(100)
declare @result varchar(100)
set @result = ''
set @partnr='abcdefghieeefffgggeeeefedef1'

while len(@partnr) >= 3
begin
set @result = @result + ',' + left(@partnr , 3)
set @partnr = right(@partnr , len(@partnr) - 3)
end
set @result = @result + ',' + @partnr
print @result

/*
,abc,def,ghi,eee,fff,ggg,eee,efe,def,1
*/
areswang 2008-09-01
  • 打赏
  • 举报
回复
顶老乌龟
intellectual123456 2008-09-01
  • 打赏
  • 举报
回复
大乌龟正确
等不到来世 2008-09-01
  • 打赏
  • 举报
回复

declare @partnr varchar(100),
@start int,
@len int
select @start=1
select @partnr='abcdefghieeefffgggeeeefedef'
select @len=len(@partnr)

while @len>0
begin
select @partnr=stuff(@partnr,@start,0,',')
select @len=@len-3
select @start=@start+4
end
print @partnr

/*
,abc,def,ghi,eee,fff,ggg,eee,efe,def
*/
dawugui 2008-09-01
  • 打赏
  • 举报
回复
declare @partnr varchar(100)
declare @result varchar(100)
set @result = ''
set @partnr='abcdefghieeefffgggeeeefedef'

while len(@partnr) > 0
begin
set @result = @result + ',' + left(@partnr , 3)
set @partnr = right(@partnr , len(@partnr) - 3)
end
print @result

/*
,abc,def,ghi,eee,fff,ggg,eee,efe,def
*/
intellectual123456 2008-09-01
  • 打赏
  • 举报
回复

declare @partnr varchar(100),
@start int,
@len int


select @start=1
select @partnr='abcdef'

select @partnr=stuff(@partnr,@start,0,',')
select @len=len(@partnr)

while @len>=0
--and @start <len(@partnr)
begin
select @start=@start+4
select @partnr=stuff(@partnr,@start,0,',')
select @len=@len-4
end
print @partnr
--你再试试.
水族杰纶 2008-09-01
  • 打赏
  • 举报
回复
select @start=1
select @partnr='abcdefghieeefffgggeeeefedef'

select @partnr=stuff(@partnr,@start,0,',')
select @len=len(@partnr)

while @len>=0
--and @start <len(@partnr)
begin
select @start=@start+4
select @partnr=stuff(@partnr,@start,0,',')
select @len=@len-4
end
print @partnr

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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