注册 登录
编程论坛 SQL Server论坛

[求助]怎么写提取字符串的循环

爱猪の云 发布于 2007-01-24 15:17, 1371 次点击
如果表里面有个字段``里面的内容是:成员1,10.成员2,20.成员3,10
现在我要把他插入要另外一个表里面去...另个表里面有用户名称,得分2个字段...
就是要成这样:
用户名称 得分
成员1 10
成员2 20
成员3 10
我知道要先找到第一个逗号前面的字串取出名字,然后删掉第一个逗号前面的所有字串
然后再找第一个.号前面的字串取分数,然后删掉.号前面的所有字串
但是这样循环要怎么写啊.....
6 回复
#2
Kendy1234562007-01-24 16:16
create table table1
(
Field1 varchar(100)
)

create table table2
(
user varchar(100),
score varchar(100)

)
Insert into table1 ...
.....
Insert into table2 (user, score)
select user = left(field1,patindex('%,%',field1)-1), score = right(field1,len(field1) - patindex('%,%',field1))
from table1

[此贴子已经被作者于2007-1-24 16:17:09编辑过]

#3
Kendy1234562007-01-24 16:30

我理解错楼主的意思了.


按照楼主想用的逻辑:
Declare @Str varchar(1000),@Len integer,@User varchar(100),@Score varchar(100)
Set @str = '成员1,10.成员2,20.成员3,10'
Set @Len = Len(@str)
While @Len > 0 and patindex('%,%',@str) > 0
Begin
Set @user = left(@str,patindex('%,%',@str)-1)
Set @Str = Right(@str,len(@str) - patindex('%,%',@str))
Set @Score = left(@str,patindex('%.%',@str)-1)
Set @Str = Right(@str,len(@str) - patindex('%.%',@str))
Set @Len = Len(@Str)

Insert into table2 (User, Score) values (@user, @score)
End

如果@Str从Table1中取出的话 就在外面套一层游标

#4
棉花糖ONE2007-01-24 17:30

csdn上对这个问题给出过三种解法,楼主有兴趣的话可以去找找

#5
爱猪の云2007-01-24 20:27

嗯``谢谢了```
也谢谢楼主........

#6
Kendy1234562007-01-25 11:20
以下是引用爱猪の云在2007-1-24 20:27:00的发言:

嗯``谢谢了```
也谢谢楼主........

你自己谢自己做什么?
#7
爱猪の云2007-01-25 12:27
以下是引用Kendy123456在2007-1-25 11:20:00的发言:

不好意思````打错字啦````
应该是版主的```````````

1