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. python—day01_环境安装

    搭建环境 1.win10_X64,其他Win版本也可以. 2.安装python.()3.PyCharm版本:Professional-2016.2.3. 在Windows上安装Python 首先,根据 ...

  2. Getting Started With Node and NPM

    Getting Started with Node and NPM Let's start with the basics. Install Node.js: https://nodejs.org.

  3. vs code插件自动压缩 min.css

    我们在进行相应的项目书写的时候,有些需要把scss 和 css 进行 压缩成 min.css 便于更好的使用 在这里强调一下 scss 后来才慢慢接触到这个语言的 感觉的确实懂得明白了之后  好用而且 ...

  4. Unity 游戏框架搭建 2019 (四十八/四十九) MonoBehaviourSimplify 中的消息策略完善&关于发送事件的简单封装

    MonoBehaviourSimplify 中的消息策略完善 在上一篇,笔者说,MonoBehaviourSimplify 中的消息策略还有一些小问题.我们在这篇试着解决一下. 先贴出来代码: usi ...

  5. CF1353D Constructing the Array(优先队列)

    Question 给你一个长度为n的全为0的序列,让你从1-n填数,填的位置为找出最长的0序列,如序列长度为奇数,则为(l+r)/2,为偶数,则为(l+r-1)/2 Solution 运用优先队列,将 ...

  6. Nessus静态ip配置及内网扫描

    环境ubuntu虚拟机,以前linux配置ip都是从/etc/network/interfaces这里面更改,现在要在/etc/netplan下面配置. vim /etc/netplan/01-net ...

  7. 01 . RabbitMQ简介及部署

    RabbitMQ简介 ​ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...

  8. 【译】Welcome to C# 9.0

    C# 9.0正在形成,我想分享我们对添加到该语言下个版本的一些主要功能的看法.对于每个新版本的 C#,我们努力使常见的编码方案更加清晰和简单,C# 9.0 也不例外.这次的一个特别重点是支持数据形状的 ...

  9. java继承会犯的小错误

    注意事项:阅读本文前应该先了解java的继承.本文定位为已经继承基础知识. 一:试图覆盖私有方法 先上代码 public class Father { private void print() { S ...

  10. ASP.NET通过更改Url进行页面传值

    这里,通过假数据,手动创建的一个类,然后创建的一个集合,放入下拉框,选好值以后,点确定 会在另一个页面产生对应的id,有不懂的欢迎评论 创建一个类: using System; using Syste ...