sql查询结果部分替换

如表1为表2为1A1001~100211001节目12B1001~100321002节目23C100331003节目3...想将表1中第三个字段替换为表2中第三个字段的内... 如表1为 表2为
1 A 1001~1002 1 1001 节目1
2 B 1001~1003 2 1002 节目2
3 C 1003 3 1003 节目3
...
想将表1中第三个字段替换为表2中第三个字段的内容,如表1中1001~1002换为节目1~节目2
谢谢大家了,请了好多人都说太复杂写不了,我只好导到Excel里做,但太麻烦了又要出错...
我用的是PLSQL这个工具
我是菜鸟,只会很简单的查询,请写全,直接能调出数据就行,谢谢了
展开
 我来答
badkano
2009-04-24 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144775 获赞数:885375
团长

向TA提问 私信TA
展开全部
有办法的,不过要慎用
先为表1增加两个字段,一个是begin_name 一个是end_name
然后update这两个字段
替换为第三个字段里的前4位和后4位,用substr函数
再然后拼接一下字符串替换一下
最后把新增的两个字段弄掉
----------------补充-------------
具体步骤
1.alter table 表1 add begin_name varchar2(24) NULL;
alter table 表1 add end_name varchar2(24) NULL;
长度自己定义,足够长就行,以后这里要存放表2的字段3
2.update 表1 set begin_name=substr(字段3,1,4);
update 表1 set end_name=substr(字段3,-4,4);
commit;
3.update 表1 a set a.begin_name=(select b.字段3 from 表1 b where a.字 段1=b.字段1);

update 表1 a set a.end_name=(select b.字段3 from 表1 b where a.字段1=b.字段1);
commit;
4.update 表1 set 字段3=begin_name||'~'||end_name;
commit;
5.drop那俩字段,这个不用我写了吧?

还有点问题,如果象你第三条纪录,那你就判断一下字段3的长度就行了,这个改起来又不难

我写的很详细了啊,你只要把表1表2和字段名换成你自己数据库里的不就行了吗
maodrc
2009-04-24 · TA获得超过3289个赞
知道小有建树答主
回答量:1090
采纳率:79%
帮助的人:1191万
展开全部
如果表1没有 1001~1002 这样的数据就好办了,用plsql很好实现.

这样的话可以写个小程序,两条sql把表1,表2数据查询出来,然后根据表2替换表1,然后写回表1即可...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thor_ze
2009-04-28
知道答主
回答量:48
采纳率:0%
帮助的人:22.6万
展开全部
楼主的意思没整明白,楼上的也没看懂,迷糊了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式