Oracle数据库数据修改语句
请问,我要将下面查询出来的数据中,把a.rsc_status_cd的值修改为'43',sql语句该怎么写?selecta.phone_number,b.name,c.na...
请问,我要将下面查询出来的数据中,把a.rsc_status_cd的值修改为'43',sql语句该怎么写?
select a.phone_number,b.name,c.name,a.version,d.name,a.rsc_status_cd
from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
); 展开
select a.phone_number,b.name,c.name,a.version,d.name,a.rsc_status_cd
from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
); 展开
6个回答
展开全部
把查出来的数据做一个表g,a.rsc_status_cd as rsc_status
使用update g set g.rsc_status = '43'。
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
逻辑结构
它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。
以上内容参考:百度百科-Oracle数据库
展开全部
把查出来的数据做一个表g,a.rsc_status_cd as rsc_status
使用update g set g.rsc_status = '43'
使用update g set g.rsc_status = '43'
追问
请具体一点,麻烦把sql写一下
追答
update (select a.phone_number,b.name,c.name,a.version,d.name,a.rsc_status_cd as rsc_status
from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
))g set g.rsc_status = '43'
这只是改查询出来的值,但没有改数据库中的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表 rm.phone_number@gzcrm 有没有主键?
有,如下
update rm.phone_number@gzcrm
set rsc_status_cd=43
where a.主键 in (
select a.主键 from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
)
)
有,如下
update rm.phone_number@gzcrm
set rsc_status_cd=43
where a.主键 in (
select a.主键 from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
)
)
追问
这条语句不对
追答
錯誤提示呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.phone_number,b.name,c.name,a.version,d.name,a.rsc_status_cd
from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd='43'
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
);
from rm.phone_number@gzcrm a,rm.access_number_type@gzcrm b,rm.resource_status@gzcrm c,rm.phone_number_pool@gzcrm d
where a.an_type_cd=b.an_type_cd
and a.rsc_status_cd='43'
and a.rsc_status_cd=c.rsc_status_cd
and a.pool_id=d.pool_id
and a.area_id='8'
and a.an_type_cd='101'
and (a.phone_number like '%000'
or a.phone_number like '%111'
or a.phone_number like '%222'
or a.phone_number like '%333'
or a.phone_number like '%444'
or a.phone_number like '%555'
or a.phone_number like '%666'
or a.phone_number like '%777'
or a.phone_number like '%888'
or a.phone_number like '%999'
)
and a.rsc_status_cd in ('1')
);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询