学习Microsoft SQL Server 2008技术内幕:T-SQL语法基础--第4章
第4章 子查询
4.2.1 Exist 谓语:
use TSQLFundamentals2008
select *
from Sales.Customers as C
where c.country=N'Spain' select *
from Sales.Customers as C
where c.country=N'Spain' and exists(select * from Sales.Orders as O where o.custid=C.custid) select *
from Sales.Customers as C
where c.country=N'Spain' and not exists(select * from Sales.Orders as O where o.custid=C.custid)

4.3.2 连续聚和
select OBJECT_ID('Sales.OrderTotalsByYear')
if OBJECT_ID('Sales.OrderTotalsByYear') is not null drop view Sales.OrderTotalsByYear
go
create view Sales.OrderTotalsByYear with schemabinding
as
select
YEAR(o.orderdate) as orderyear,
SUM(od.qty) as qty
from
Sales.Orders as o
join Sales.OrderDetails as od on o.orderid=od.orderid
group by YEAR(o.orderdate)
go
查询:
select O1.orderyear, o1.qty,
(select SUM(o2.qty) from
Sales.OrderTotalsByYear as o2
where o2.orderyear <= o1.orderyear
) as runqty
from Sales.OrderTotalsByYear as O1
order by o1.orderyear
4.3.3 行为不当的子查询
SELECT custid, companyname
FROM Sales.Customers AS C
WHERE custid NOT IN(SELECT O.custid
FROM Sales.Orders AS O);
返回:
custid companyname
22 Customer DTDMN
57 Customer WVAXS
插入一条custid=NULL的记录:
INSERT INTO Sales.Orders
(custid, empid, orderdate, requireddate, shippeddate, shipperid,
freight, shipname, shipaddress, shipcity, shipregion,
shippostalcode, shipcountry)
VALUES(NULL, 1, '', '',
'', 1, 123.00, N'abc', N'abc', N'abc',
N'abc', N'abc', N'abc');
SELECT custid, companyname
FROM Sales.Customers AS C
WHERE custid NOT IN(SELECT O.custid
FROM Sales.Orders AS O);
返回0行
原因:
NOT(22=1 Or 22=2 Or 22=NULL)
NOT(False or False Or UnKnown)
NOT UnKnow
Unknow
查询条件过滤UnKnown
而:
SELECT custid, companyname
FROM Sales.Customers AS C
WHERE not exists (SELECT *
FROM Sales.Orders AS O where C.custid=O.custid);
或
SELECT custid, companyname
FROM Sales.Customers AS C
WHERE custid NOT IN(SELECT O.custid
FROM Sales.Orders AS O where O.custid is NOT null);
返回:
custid companyname
22 Customer DTDMN
57 Customer WVAXS
学习Microsoft SQL Server 2008技术内幕:T-SQL语法基础--第4章的更多相关文章
- 学习Microsoft SQL Server 2008技术内幕:T-SQL语法基础
第 2 章: 单表查询 use TSQLFundamentals2008; select * from Sales.orders; select empid, year(orderdate) as o ...
- 《microsoft sql server 2008技术内幕 t-sql语言基础》
第一章 TSQL编程基础 源代码下载:TSQLFundamentals2008 创建表 USE testdb; CREATE TABLE dbo.Employess ( empid INT NOT N ...
- 2008技术内幕:T-SQL语言基础
2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...
- 2008技术内幕:T-SQL语言基础 单表查询摘记
这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这 ...
- 2008技术内幕:T-SQL语言基础 联接查询摘记
续 2008技术内幕:T-SQL语言基础 单表查询摘记 第三章 联接查询 Microsoft SQL Server 2008 支持四种表运算符 join(ANSI标准).apply(T-SQL扩展). ...
- 使用SQL Server 2008远程链接时SQL数据库不成功的解决方法
关键设置: 第一步(SQL2005.SQL2008): 开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Serv ...
- SQL Server 2008空间数据应用系列四:基础空间对象与函数应用
原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. ...
- SQL Server 2008 R2升级到SQL Server 2012 SP1
1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的S ...
- 安装 SQL Server 2008 和管理工具 SQL Server 2008 management studio 及相关问题解决
Sql Server 2008 问题小总结 http://www.lihengyu.com/blog/4877.html 安装 SQL Server 2008 和管理工具 SQL Server 200 ...
随机推荐
- -webkit-overflow-scrolling:touch;
-webkit-overflow-scrolling建了带有硬件加速的系统级控件,所以效率很高.但是这相对是耗更多内存的,最好在产生了非常大面积的overflow时才应用. 而且在 ios8 里有b ...
- .NET的PE文件结构篇(转)
一.开篇 开篇我要讲述一个关于PE文件结构的文章,这篇文章动手能力比较强,希望大家能够动手进行操作,这边文章篇幅有可能会长一些,为了方便大家阅读我可以将其分为几个部分进行讲解,主要分为以下几个部分: ...
- spring和Quartz的定时功能
一:前沿 最近在做一个定时的功能,就是在一定时间内查询订单,然后告诉用户未付款,已付款等消息通知,而且要做集群的功能,这个集群的功能是指,我部署两套代码,其中一个定时的功能在运行,另外一个就不要运行. ...
- 基于SSM框架web搜索功能的实现
这里适合选用于jsp搭建的网站,数据库采用MySQL 一.HTML <div class="header_search"> <input type="t ...
- MySQL-based databases CVE-2016-6664 本地提权
@date: 2016/11/10 @author: dlive 0x00 前言 这个漏洞可以结合CVE-2016-6663使用提升权限到root 0x01 漏洞原文 # http://legalha ...
- 【bzoj4282】慎二的随机数列
扯几句题外的,最近在看Fate/StayNight,对此人毫无好感…… 每次减一下当前可辨认数,然后随意dp一个LIS,最后记得加回去就好. #include<bits/stdc++.h> ...
- 利用php设置url转发 - 解决空间不提供子目录绑定功能的问题
由于很多新手都是使用的虚拟空间都是最便宜的那种,这空间一般不支持子目录绑定.但是很多朋友又想设置几个不同的二级域名访问不同的网站程序.于是大家找到了域名url转发,但是由于国家政策的原因,许多服务商暂 ...
- [ python3 ] 基于zabbix 自动抓取每天监控数据
通过python登录到zabbix直接抓取每天的数据的图片趋势图,并制作成静态index.html给与展示并发送提示邮件. 操作系统:Centos6.7 python版本:python3.5 #!/u ...
- WPF第三方控件盘点
WPF统一的编程模型.语言和框架,实现了界面设计人员和开发人员工作可以分离的境界,鉴于WPF强大的优势,且一直是开发者关注的地方,下面和大家分享基于WPF项目开发需要用到的第三方控件,包括业界最受好评 ...
- tushare 安装
1.pip install lxml 2.pip install pandas 3.pip install requests 4.pip install lxml 5.pip install tush ...