oracle中insert如何带条件添加数据?

oracle中insert如何带条件添加数据?好像用where是不行的吧?求大神指点... oracle中insert如何带条件添加数据?好像用where是不行的吧?求大神指点 展开
 我来答
ngyuvfyh
2018-11-29 · TA获得超过367个赞
知道小有建树答主
回答量:307
采纳率:50%
帮助的人:31.1万
展开全部
如果
数据不存在,那么执行插入的操作。
数据已经存在, 那么就不插入(可能是只做更新处理, 也可能什么事情都不干)

下面是一个例子代码:

--源表
CREATETABLEtest_from(idINT,valVARCHAR(20));

--目标表
CREATETABLEtest_to(idINT,valVARCHAR(20));

--插入源表
INSERTINTOtest_fromVALUES(1,'A');
INSERTINTOtest_fromVALUES(2,'B');

--合并源表到目标表
MERGEINTOtest_to
USINGtest_from
ON(test_to.id=test_from.id)--条件是id相同
WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的时候,更新
WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目标表没有,插入

--第一次检查目标表数据.
SQL>SELECT*FROMtest_to;

IDVAL
------------------------------
1A
2B

--更新源表
UPDATEtest_fromSETval='A2'WHEREid=1;
--删除源表
DELETEFROMtest_fromWHEREid=2;
--插入源表
INSERTINTOtest_fromVALUES(3,'C');

--合并源表到目标表
MERGEINTOtest_to
USINGtest_from
ON(test_to.id=test_from.id)--条件是id相同
WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的时候,更新
WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目标表没有,插入

--再次检查目标表数据.
SQL>SELECT*FROMtest_to;
追问
这没有空格的语句 ,看的眼睛疼 - -
张伊笙
2018-11-29 · TA获得超过527个赞
知道小有建树答主
回答量:962
采纳率:85%
帮助的人:452万
展开全部
如果你想添加条件的话,只能这样:
insert into tablename select * from tablename1 where id='XXX';
追问
添加属性 values 怎么带条件添加??
追答
那样就不行了,有values 那种不支持where
通用语法insert into tablename values('xxx');
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式