DML_Modifying Data Through Table Expressions_UPDATE
之前也学习过使用CTE,再来泛泛的学习下,
最后将会将一些书籍上或学习到的CTE来个小结

/*
Microsoft SQL Server 2008 T-SQL Fundamentals_CN
Microsoft SQL Server 2008 T-SQL Fundamentals
*/ --以Northwind库下的Customers表为例,说明CTE的用法
SELECT *
FROM Customers
------------------------------------------------------------------------------------------
--它的内部查询返回所有来自 USA 的客户,外部查询则选择了CTE中的所有行
--与派生表一样,一旦外部查询完成,CTE的声明期也就结束了 (将会专开一篇学习Derived Table) WITH <CTE_Name>[(<target_column_list>)]
AS
(
<inner_query_defining_CTE>
)
<outer_query_against_CTE> WITH USACusts AS
(
SELECT CustomerID,CompanyName
FROM Customers
WHERE Country = N'USA'
)
SELECT * FROM USACusts;
---------------------
--根据语法增加了WITH 后面表的字段
WITH USACusts(CustomerID,CompanyName,Country) AS
(
SELECT CustomerID,CompanyName, Country
FROM Customers
WHERE Country = N'USA'
)
SELECT * FROM USACusts;
------------------------------------------------------------------------------------------
--使用CTE(Common Table Expressions) --下面是上次DML_Data Modification_UPDATE中带有联接的更新语句
UPDATE OD
SET discount = discount + 0.03
FROM dbo.[Order Details] AS OD
JOIN dbo.Orders AS O
ON OD.OrderID = O.OrderID
WHERE CustomerID = 'TOMSP';
----------------
SELECT * FROM [Order Details]
SELECT * FROM Orders
----------------
--上面是带有联接的更新语句,将它改变...
--不记得字段内容了,可用上面2句查询一下
SELECT CustomerID,
OD.OrderID,
productid,
discount,
discount+0.05 AS newdiscount
--SET discount = discount + 0.03
FROM dbo.[Order Details] AS OD
JOIN dbo.Orders AS O
ON OD.OrderID = O.OrderID
WHERE CustomerID = 'TOMSP';
----------------
--继续改编,将上面的语句用 WITH包含起来(使用CTE的例子),然后再 UPDATE
--SQL Server 2005以后的版本支持CTE(没测试过,本环境为MSSQL2014)
WITH C AS
(
SELECT CustomerID,
OD.OrderID,
productid,
discount,
discount+0.05 AS newdiscount
--SET discount = discount + 0.03
FROM dbo.[Order Details] AS OD
JOIN dbo.Orders AS O
ON OD.OrderID = O.OrderID
WHERE CustomerID = 'TOMSP'
)
UPDATE C SET discount = newdiscount;
------------------------------------------------------------------------------------------
--使用派生表的例子( Derived Table)
--SQL Server 2005以前的版本支持派生表(没测试过,本环境为MSSQL2014)
--Northwind库
UPDATE D
SET discount = newdiscount
FROM (

 

DML_Modifying Data Through Table Expressions_UPDATE的更多相关文章

  1. -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

    [root@DB ~]# mysqldump -uroot -p123 --flush-logs --all-databases >fullbackup_sunday_11_PM.sql -- ...

  2. Table View Programming Guide for iOS---(四)---Navigating a Data Hierarchy with Table Views

    Navigating a Data Hierarchy with Table Views 导航数据表视图层次 A common use of table views—and one to which ...

  3. React中使用Ant Table组件

    一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...

  4. react引用ant的table组件

    import React from 'react';import '../../css/uicss/UI.css';import 'antd/lib/style/index.less';import ...

  5. 关于页面中table中相同的列自动合并

    代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  6. 自我反思--table的简单数据分页

      自我反思   几天没有写工作总结了,整个人都变得懒散了.公司的工作也确实是不紧张,对于我这种自制力不强的人简直是...(想不到词了),完全放了风了... 每天逛逛淘宝,买些乱七八糟其实并没有什么用 ...

  7. 【HTML】Beginner8:Table

    1.Table     Abused to lay out pages    The correct use for tables is to do exactly what you would ex ...

  8. Hive - 建表和加载数据指令小结 以及使用Load data指令的注意事项

    类似Mysql的数据库概念: hive> CREATE DATABASE cui; hive> USE cui; 创建表: CREATE TABLE test( first STRING, ...

  9. Data Types

    原地址: Home / Database / Oracle Database Online Documentation 11g Release 2 (11.2) / Database Administ ...

随机推荐

  1. poj3249 拓扑找最长路

    Test for Job Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 11230   Accepted: 2651 Des ...

  2. 100道MySQL数据库经典面试题解析(收藏版)

    前言 100道MySQL数据库经典面试题解析,已经上传github啦 https://github.com/whx123/JavaHome/tree/master/Java面试题集结号 公众号:捡田螺 ...

  3. vue中template的三种写法

    第一种(使用模板字符串)早期字符串拼接年代 <div id="app"></div> new Vue({ el: "#app", tem ...

  4. Flutter 使用Navigator进行局部跳转页面

    老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写.底部导航一直存在,每个tab各自导航场景. Navigator 是管理路由的控件,通常情况下直接使用N ...

  5. vue中 transition组件使用总结

    博客园比较啃爹啊,随笔只能手写,之前写在有道云笔记里面的内容也复制不了,忧伤..... 长话短说,看官方的transition 的讲解,可能是内容太多了,或者就是本人太辣鸡了,看的有点懵逼,但是项目中 ...

  6. (一)DAO设计及BaseDAO和BookDAO的实现

    1.总体架构 MVC 设计模式:Model:POJO(Plain Old Java Object) Controller:ServletView:JSP + EL + JSTL 2.技术选型 数据库: ...

  7. 解决google play上架App设置隐私政策声明问题

    在我们的app上架到google play后,为了赚点小钱,就集成google ads,然而这会引发一个新的问题,那就是设置隐私政策声明的问题,通常我们会收到一封来自google play的邮件,提示 ...

  8. vue 中引入使用jquery

    1.首先在配置文件中添加 cnpm install  下载jquery文件 2.在webpack配置文件中添加下面代码 3.接着在webpack.base.conf.js中module.exports ...

  9. Ftrace的部分使用方法

    ftrace主要是用于调试linux kernel调度相关的一个工具,也可用于分析部分kernel性能问题. 相关ftrace的介绍可以参考:kernel/msm-4.9/Documentation/ ...

  10. DDD之3实体和值对象

    图中是一个别墅的模型,代表实体,可以真实的看得到.那么在DDD设计方法论中,实体和值对象是什么呢? 背景 实体和值对象是领域模型中的领域对象,是组成领域模型的基础单元,一起实现实体最基本的核心领域逻辑 ...