可以用oracle语句 修改查询出的视图数据么?

可以用oracle语句,将查询出来的视图里面的一个a字段的不重复数据清空么?变成图中所示的数据,保留所有其他所有数据。可以么?... 可以用oracle语句,将查询出来的视图里面的一个a字段的不重复数据清空么?变成图中所示的数据,保留所有其他所有数据。可以么? 展开
 我来答
随o天
2012-12-12 · TA获得超过3158个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2012万
展开全部
简单说视图是表的另一种访问结构,视图中没有实体,只是个窗口、框架。对视图的修改等于修改与视图对应的表。因此,对视图的修改要满足相应基表的完整性约束。
至于如何修改从视图中查出来的数据,要先确定使用的工具。
PL/SQL Developer或者SQL Developer都可以对查出来的记录进行修改。如果直接用SQL语句修改视图,则不能查出来修改而是用Update语句直接修改。
例如清空id=3的a值清空:update 视图名 set a='' where id=3;
追问
使用的是PL/SQL Developer,只不过sql语句是写在程序里面的  程序调用这条语句 得到查询结果  要是用update直接修改 会对原表产生影响么,只希望查询出来的数据满足我的要求,对原表不产生影响。
e23jiang
2012-12-12 · TA获得超过1209个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:204万
展开全部
你想要的结果应该是修改视图改变查询结果吧?而不是实际物理表的数据吧?就在你视图后面
select id,case when t1.num=0 then '' else t.a end a from 表 t left join (select a ,count(id) num from 表名 group by a) t1 on t.a=t1.a
追问

我是调用别人做给我的一张视图,查询里面的相关数据,返回给程序,比如查询图片中id和a两个字段的数据,但是返回值的时候,返回成题目中的数据,这可以么?

追答
可以,不过现在的规则跟你之前的有不同吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a08070
2012-12-12
知道答主
回答量:37
采纳率:0%
帮助的人:12.9万
展开全部
create table 表名 as select * from 视图;
update 表名 set a null where a not ni (select a from (select a ,count(id) from 表名 group by a having count(id)>1));
更多追问追答
追问

我是调用别人做给我的一张视图,查询里面的相关数据,比如查询图片中id和a两个字段的数据,但是返回值的时候,返回成题目中的数据,这可以么?

追答
建和视图一样的新表,按你要求修改字段上的数据, 这样不会影响你同事给你的那个视图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海沫灵光
2012-12-12 · 超过29用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:72万
展开全部
update view set a = null where id in (select max(id) from view group by a having count(*) == 1)
更多追问追答
追问

我是调用别人做给我的一张视图,查询里面的相关数据,比如查询图片中id和a两个字段的数据,但是返回值的时候,返回成题目中的数据,这可以么?

追答
可以。

select a.id,b,a
(select id,a from view) a left join (select id,a from view where id not in (select max(id) from view group by a having count(*) == 1)) b
这样应该就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式