最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle實現(xiàn)同表更新或插入的三種方案

 更新時間:2023年11月15日 08:35:38   作者:xyy123  
這篇文章主要給大家介紹了Oracle實現(xiàn)同表更新或插入的三種方案,文章通過代碼示例和圖文結(jié)合講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下

一、需求

現(xiàn)在有一張count表,存在兩個字段name和count,分別記錄輸入的名稱以及出現(xiàn)的次數(shù)

要求輸入的名稱若在表中未存在,則新增,并初始化count的值為1

若在表中已經(jīng)存在,則將count值加一

二、實現(xiàn)

2.1 方案一

在處理前統(tǒng)計name出現(xiàn)的次數(shù),若大于一,則修改,否則為新增

2.2 方案二

根據(jù)上面的邏輯,使用plsql實現(xiàn)

DECLARE
  v_count NUMBER;
  v_name char(20);
BEGIN
  v_name:='a';  

  SELECT COUNT(*)
  INTO v_count
  FROM (SELECT name, COUNT(*) as count
        FROM count
        GROUP BY name)
  WHERE name = v_name;
  
  IF v_count >= 1 THEN
    UPDATE count
    SET count = count + 1
    WHERE name = v_name;
  ELSE
    INSERT INTO count values(v_name,1);
  END IF;
END;

更新:此時往表中插入一條已經(jīng)存在的name a,只需修改v_name 的值為'a'

新增:此時往表中插入一條不存在的name c,修改v_name 的值為'c'

2.3 方案三

根據(jù)上面的邏輯,使用merge into實現(xiàn)

merge into count c1
using ( select count(*) count from count c2 where c2.name = 'a' ) c3
on (c3.count > 0)
when matched then
    update set c1.count = c1.count + 1 where c1.name = 'a'
when not matched then
    insert values('a',1) ;

現(xiàn)在清空數(shù)據(jù)表,新增一行數(shù)據(jù)a

再次點擊執(zhí)行,則執(zhí)行修改邏輯

到此這篇關(guān)于Oracle實現(xiàn)同表更新或插入的方案總結(jié)的文章就介紹到這了,更多相關(guān)Oracle同表更新或插入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

灵川县| 呼伦贝尔市| 武山县| 始兴县| 巴里| 云龙县| 双城市| 钟祥市| 通化市| 北碚区| 东光县| 河西区| 张家界市| 新丰县| 平乐县| 泸州市| 福贡县| 桃园市| 岳阳市| 雷山县| 屏东县| 沅江市| 泰安市| 温州市| 玉林市| 宜兴市| 安新县| 白城市| 上思县| 安仁县| 开封市| 伽师县| 望城县| 榆林市| 克山县| 达拉特旗| 太仓市| 平罗县| 长垣县| 平潭县| 麟游县|