永发信息网

oracle如何根据条件插入呢?比如插入一条记录是insert into...,那加条件该如何加呢?求一完整例子

答案:4  悬赏:80  手机版
解决时间 2021-12-29 15:48
oracle如何根据条件插入呢?比如插入一条记录是insert into...,那加条件该如何加呢?求一完整例子
最佳答案
如何根据条件插入 ?
你是不是要有这样的需求呀:

如果  
数据不存在,那么执行插入的操作。
数据已经存在, 那么就不插入(可能是只做更新处理, 也可能什么事情都不干)


下面是一个例子代码:

-- 源表
CREATE TABLE test_from (id INT, val VARCHAr(20));

-- 目标表
CREATE TABLE test_to (id INT, val VARCHAr(20));

-- 插入源表
INSERT INTO test_from VALUES (1, 'A');
INSERT INTO test_from VALUES (2, 'B');

-- 合并 源表到目标表
MERGE INTO test_to 
USING test_from
ON ( test_to.id = test_from.id )    -- 条件是 id 相同
WHEN MATCHED THEN UPDATe SET test_to.val = test_from.val   -- 匹配的时候,更新
WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入


-- 第一次检查 目标表数据.
SQL> SELECt * FROM test_to;

        ID VAL
---------- --------------------
         1 A
         2 B

-- 更新源表
UPDATe test_from SET val = 'A2' WHERe id = 1;
-- 删除源表
DELETe FROM test_from WHERe id = 2;
-- 插入源表
INSERT INTO test_from VALUES (3, 'C');


-- 合并 源表到目标表
MERGE INTO test_to 
USING test_from
ON ( test_to.id = test_from.id )    -- 条件是 id 相同
WHEN MATCHED THEN UPDATe SET test_to.val = test_from.val   -- 匹配的时候,更新
WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入


-- 再次检查 目标表数据.
SQL> SELECt * FROM test_to;

        ID VAL
---------- --------------------
         1 A2
         2 B
         3 C
全部回答
insert into 表名 values('字段值1,字段值2') 如果是主键 必须要先创建序列
更新插入并更新 MERGE INTO t USING s ON ( t.id=s.id ) WHEN MATCHED THEN INSERT (id) valuse(s.id) WHEN NOT MATCHED THEN UPDATE SET t.id=s.id; 只插入 MERGE INTO t USING s ON ( t.id=s.id ) WHEN MATCHED THEN INSERT (id) valuse(s.id);
insert into 川卫中间报表(日期,医疗机构编码,医疗机构名称,统计指标)  select z.日期 .....  --这部分就是你上边截图的sql
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我退出后的微博群在家,回去让那个群主转给我
北京市工商行政管理局执法检查大队位置在什么
单选题《资治通鉴》是一部什么体裁的史书A.编
生石灰不可以处理酸性废水吗
毕福剑现在的老婆是谁?
再见长滩岛英文怎么说
暴风影音 播放MOV格式时 视频倒了怎么调整过
泸州武警支队
手机怎么让游戏机上分
手柄什么牌子好
在几个相同的玻璃杯中倒入不同量的水后,只要
北京工商工作站位置在什么地方啊,我要过去办
英菲尼迪fx35和楼兰发动机一样吗
单选题《九章算术》中的《均输章》第27题:“
怎样用纸做生日帽
推荐资讯
济宁市中区的大学有没有关于机械设计制造及其
机床厂原计划四月份生产机床250台,结果前5天
淘宝拍下东西后怎么再备注
分数怎么比大小?
会泽县环保局位置在什么地方啊,我要过去办理
联想平板开不了机咋刷机
dnf复苏之风武器好吗
禹洲路地址在什么地方,想过去办事
盲目追随的意思是什么
一个三角形的三个角中,最小的角是46°,这个
windows7系统的HP笔记本开机黑屏进不去桌面是
武汉哪有佳能的金牌店啊?另外现在A570是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?