WITH AS 语法在SQL SERVER 和ORACLE数据库上均支持,主要用于子查询。语法如下:

WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
--只有在查询定义中为所有结果列都提供了不同的名称时,列名称列表才是可选的。
--运行 CTE 的语句为:
SELECT <column_list> FROM expression_name;

但其语句在两个数据库的应用却有所不同,比如在SQL SERVER 数据库上,这种语法叫做CTE,CTE后面必须直接跟使用CTE的SQL语句(如select、insert、update、merge等),否则,CTE将失效。

但是对于Oracle数据库而言,却有一个限制比较头疼,就是WITH AS后面需要紧跟SELECT语句。那如果需要执行MERGE该如何是好呢?

简单,将MERGE 语句提前即可。

举例说明:

MERGE INTO #TEMP1 A
USING (
WITH SUMORDER AS
(SELECT PRODUCTID, SUM(AMOUNT) TOTAL
FROM ORDER GROUP BY PRODUCTID)
SELECT * FROM SUMORDER
) B ON (A.PRODUCTID = B.PRODUCTID)
WHEN MATCHED THEN UPDATE SET A.TOTAL = B.TOTAL;

同理,适用于其他SQL语句!

Oracle:WITH AS () Merge ?的更多相关文章

  1. Oracle 数据库实现数据更新:update、merge

    工作中遇到的数据更新,学习记录. 1.使用update进行数据更新 1)最简单的更新 update tablea a set a.price=1.00 2)带条件的数据更新 update tablea ...

  2. 小技巧:Oracle:sqlplus 显示行列字符数

    遇到这种情况可以判断:行显示字符数不够,可以增加行显示字符数 01.可以当前会话HR@ACE >set line 400; 02.上面的方法其它会话不生效,懒不想每次设置怎么办? Oracle: ...

  3. Oracle:environment variable "PATH" does not exceed the recommended length

    今天重新安装oracle11g,突然在检测时报了以下错误: Environment variable: "PATH" - This test checks whether the ...

  4. Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only

    Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only 问: 解决 ORA-01219:databa ...

  5. 【转帖】循序渐进Oracle:数据库的字符集和字符集文件

    循序渐进Oracle:数据库的字符集和字符集文件 https://blog.csdn.net/Enmotech/article/details/100869162 2019年09月15日 18:23: ...

  6. .Net程序员学用Oracle系列(13):合并语句(MERGE)

    - 1.[**语法说明**](#segment1) - 1.1.[UPDATE 和 INSERT 可以只出现一个](#point11) - 1.2.[UPDATE 后面还可以再跟 WHERE](#po ...

  7. oracle查询转换_view merge

    oracle对于子查询的支持做的很好,oracle optimizer会对inline view进行query transfomation,即视图合并,不过也经常带来意想不到的问题.下面是一个inli ...

  8. oracle SQL语句练习MERGE、模糊查询、排序、

    Oracle支持的SQL指令可分为数据操作语言语句.数据定义语言语句.事务控制语句.会话控制语句等几种类型:1.数据操作语言语句数据操作语言语句(Data manipulation language, ...

  9. 2.5 Oracle之存储过程和MERGE INTO语句

    一.MERGE INTO语句 1.merge into语句的功能:我们操作数据库的时候,有时候会遇到insert或者Update这种需求.我们操纵代码时至少需要写一个插入语句和更新语句并且还得单独写方 ...

随机推荐

  1. .Net ABP 框架 service 无法访问

    最近在看ABP框架,按照文档写好service后,怎么也访问不到,后来发现,忘记把service类设置为public的了! 不写public ABP框架就不能将这个service映射为controll ...

  2. tensorflow--mnist注解

    我自己对mnist官方例程进行了部分注解,希望分享出来有助于入门选手更好理解tensorflow的运行机制,可以拷贝到IDE再调试看看,看看具体数据流向还有一部分tensorflow里面用到的库.我用 ...

  3. figure 的使用

    1.figure语法及操作(1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...

  4. JS中定义对象和集合

    在js中定义对象: 方式一: var obj = {}; obj['a']=1; obj['b']=2; 方式二: var obj=new Object(); obj.a=1; obj.b=2; 在j ...

  5. SecuerCRT遇到一个致命错误且必须关闭_解决方案_软件链接(自己百度云盘的)

    问题描述: 1.以前安装过SecureCRT,现在出现问题,手工卸载不完全,导致新安装的SecureCRT一直提示:以下错误. 2.出现的错误: 3.解决方案: 1)删除,上图路径中VanDyke文件 ...

  6. git - 1.基础

    配置 C:\Users\Administrator λ git config --global user.name 'tangsansan' C:\Users\Administrator λ git ...

  7. 语法之进化论之lambda表达式

    namespace 匿名函数 { /// <summary> /// 语法之进化论 /// </summary> class Program { delegate bool M ...

  8. 使用IIS应用程序初始化来保持ASP.NET应用程序的活动

    https://weblog.west-wind.com/posts/2013/Oct/02/Use-IIS-Application-Initialization-for-keeping-ASPNET ...

  9. 利用Skywalking-netcore监控你的应用性能

    Skywalking SkyWalking开源项目由吴晟于2015年创建,同年10月在GitHub上作为个人项目开源. SkyWalking项目的核心目标,是针对微服务.Cloud Native.容器 ...

  10. 原生js添加博客点击鼠标出小心心效果~~

    昨天刚申请成功JS权限,心血来潮想添加点东西,记得之前看到别人家博客首页点击鼠标的时候会出现炫酷的 “小心心”,自己也来搞一个.没有用jquery啥的框架,原生js写起来麻烦了点,不过主要是怕博客首页 ...