zoukankan      html  css  js  c++  java
  • sql server 中使用merge 语法

    sql server 中自2008后引入merge 关键字,为学习使用,下面写个小脚本

    use Test;
    -- 创建表
    create table t1(
    id int,
    score int
    )

    create table t2(
    id int,
    name varchar(24),
    score int
    )

    --2 插入测试数据
    insert into t1
    values(1,23),(2,34),(3,235425)

    insert into t2
    values(1,'name1',225),(2,'name2',225),(3,'name3',225),(4,'name4',225)
    --3 使用merge ,有相同记录更新,不存在 插入新记录
    merge into t1
    using t2 on t1.id = t2.id
    when matched then
    update set t1.score = t2.score
    when not matched then
    insert (id,score)
    values(t2.id,t2.score);

    -- select * from t1

    =============merge into 支持以下几种方式===
    1) matched 和not matched clauses 同时使用
       merge into acct a
         using subs b on (a.msid=b.msid)    
       when MATCHED then
            update set a.areacode=b.areacode
            where b.ms_type=0
       when NOT MATCHED then
            insert(msid,bill_month,areacode)
            values(b.msid,'200702',b.areacode)
            where b.ms_type=0;
    2) 只有not matched clause,也就是只插入不更新
       merge into acct a
         using subs b on (a.msid=b.msid)  
       when NOT MATCHED then
            insert(msid,bill_month,areacode)
            values(b.msid,'200702',b.areacode)
            where b.ms_type=0;
    3) 只有matched clause, 也就是只更新不插入
       merge into acct a
         using subs b on (a.msid=b.msid)
       when MATCHED then
            update set a.areacode=b.areacode
            where b.ms_type=0;
    4)matched时删除
    merge into acct a
         using subs b on (a.msid=b.msid)
       when MATCHED then
            update set a.areacode=b.areacode       
            delete where (b.ms_type!=0);  
  • 相关阅读:
    模式识别之svm()---支持向量机svm 简介1995
    机器视觉之相关资源--- 计算机视觉相关的部分测试数据集和源码站点
    包的引入,不要引入自己目录下的。
    内省对象 用的少,被BeanUtils代替
    使用增强for循环遍历集合的时候操作集合的问题?
    Integer 内部实现
    eclipse常用快捷键
    java 运行时环境和编译器环境
    js 随机变换图片
    js 事件点击 显示 隐藏
  • 原文地址:https://www.cnblogs.com/ilahsa/p/3062475.html
Copyright © 2011-2022 走看看