回 帖 发 新 帖 刷新版面

主题:[原创]如何循环插入值到表中?



在查询分析器中,如何使用循环 insert  数据 ,怎么写代码?

 userinfo 表  有5个字段 (username,pwd,updatepwd,user_id,soft_id ,username为主键,其余均可为空)  

select user_id from userinfo where soft_id=32  可以获得一个 user_id  的集合  ,例如如获得 123,456,789 

现在想在 userinfo 表中增加 N条记录,每条记录都以  user_id 中的条记录值+jhb  三个字母为username 的值。

  例如上例获得的user_id 集合中有 3条记录,则我应该在userinfo 表中 增加 123jhb,456jhb,789jhb 这3条记录, 请问代码怎么写呢? 应该用到游标吧?还是用循环就可以实现了呢?

  高分赠送!



回复列表 (共5个回复)

沙发

insert into userinfo(username)
select user_id+'jhb' from userinfo where soft_id=32

板凳


感谢楼上的答复,但是现在问题来了, 我的 user_id 是int 型的  ,因此楼上给出的代码 insert into userinfo(username)
select user_id+'jhb' from userinfo where soft_id=32 

会出错, user_id+'jhb' 转换不过来,因为 user_id 是INT 型的,所以可能你这代码还真实现不了,!

3 楼


搞定了,我将 user_id 换成 username  即可,本来就应该是取username的 ,楼上再回个贴,给你加满分!

4 楼

还有点小问题,现在已经能实现插入了,但是如果我想在插入的时候顺便设置另外一个字段的值,比如设置user_id 的值,不知道有什么好办法?

5 楼



表 userinfo 有两个字段 username (主键,VARCHAR型) ,user_id(INT型)。
 
    现想将表中所有以jhb 结尾的 记录的 user_id 值替换成username 前半部分与其相同并且最后3个字符是zzb的记录的user_id 的值(如下例中123zzb与123jhb 以及abd5234zzb与abd5234jhb)。

举例:(左侧为原表,右侧为更新后)


username       user_id

123zzb          88
123jhb          77
77894qsd          22365
abd5234zzb          44
abd5234jhb          369  


更新后:


username       user_id

123zzb          88
123jhb          88
77894qsd          22365
abd5234zzb          44
abd5234jhb          44  



123jhb 与123zzb 就最后3位字符串不一样,并且123zzb最后3位是zzb,更新后,应该使得123jhb 的user_id 的值= 123zzb 的user_id 的值。abd5234zzb 以及 ab5234jhb也是一样,更新后,ab5234jhb的user_id 的值应该等于abd5234zzb的user_id的值。 请问如何使用sql 代码实现?允许新增表操作。

请高手解答这一2009年度难题。

我来回复

您尚未登录,请登录后再回复。点此登录或注册