主题:[原创]如何循环插入值到表中?
傻瓜911
[专家分:150] 发布于 2009-01-02 00:02:00
在查询分析器中,如何使用循环 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个回复)
沙发
菜鸭 [专家分:5120] 发布于 2009-01-02 20:14:00
insert into userinfo(username)
select user_id+'jhb' from userinfo where soft_id=32
板凳
傻瓜911 [专家分:150] 发布于 2009-01-02 21:49:00
感谢楼上的答复,但是现在问题来了, 我的 user_id 是int 型的 ,因此楼上给出的代码 insert into userinfo(username)
select user_id+'jhb' from userinfo where soft_id=32
会出错, user_id+'jhb' 转换不过来,因为 user_id 是INT 型的,所以可能你这代码还真实现不了,!
3 楼
傻瓜911 [专家分:150] 发布于 2009-01-02 23:01:00
搞定了,我将 user_id 换成 username 即可,本来就应该是取username的 ,楼上再回个贴,给你加满分!
4 楼
傻瓜911 [专家分:150] 发布于 2009-01-02 23:20:00
还有点小问题,现在已经能实现插入了,但是如果我想在插入的时候顺便设置另外一个字段的值,比如设置user_id 的值,不知道有什么好办法?
5 楼
傻瓜911 [专家分:150] 发布于 2009-01-03 14:32:00
表 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年度难题。
我来回复