oracle update tablename set column1=value1 where exists(。。)怎么用

如果value1是一个返回多行子查询可不可以... 如果value1是一个返回多行子查询可不可以 展开
 我来答
wuhuijinshen
2011-09-21 · TA获得超过170个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:97.6万
展开全部
oracle update tablename set column1=value1 where exists(。。)
该问题我猜楼主应该想问两个地方,
第一 exists怎么用,
exists在此处就是一个条件, exists中可以放子查询,它的返回结果只有两种,成立(存在)不成立(不存在),既不管你返回多少条结果(返回一条和返回一万条意义是一样的),该条件都成立,但如果没有查到数据该条件就不成立,

如: oracle update tablename set column1=value1 where exists(select 1 from other_table where other_column = value1),
这个语句的意思是,当other_table的other_column字段的值等于value1时,前面一段tablename表的修改才会执行.
PS: 这里面的exists中的子查询,我写了1,你可以写* 或具体的字段名, 在这个子查询里面只关心有没有返回结果集,而不关系具体的字段值, 所以写1而不写*是为了效率着想.因为写*的话,会把整个表的所有字段扫描出来

第二,value1后面怎么接,
value1在此处只能是唯一的值,不管你接什么子查询还是别的,只要你能保证返回的值唯一就行,

如楼主还有不懂的地方直接HI我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式