![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQLServer
qq_20227495
这个作者很懒,什么都没留下…
展开
-
第7章 联接和集合运算
7.1 联接 基本联接类型(交叉联接,内联接,外联接) 交叉联接(CROSS), 对两个表执行笛卡儿积运算。 示例一: 为每个员工,每个客户,一段时间每一天生成一个订单 if OBJECT_ID(‘dbo.MyOrders’) is not null drop table dbo.MyOrders; go declare @fromdate as date=‘20190101’; declare ...原创 2018-12-20 05:28:10 · 191 阅读 · 0 评论 -
第9章 TOP和APPLY
9.1. TOP TOP和修改,将一个大的delete或者update拆分成几个小的,会有比较好的性能 –数据准备 IF OBJECT_ID('dbo.LargeOrders') IS NOT NULL DROP TABLE dbo.LargeOrders; GO SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS orderid, O1.cu...原创 2018-12-21 05:15:46 · 151 阅读 · 0 评论 -
第8章 数据聚合和透视
8.1 Over 子句 --聚合函数跟Over开窗函数一起使用的例子 --over() 后面没有Partition by 分区子句,则基于整个输入计算聚合 select orderid,custid,empid,val, cast((val/sum(val) over() *100.) as numeric(4,2)) as pct, cast(val-avg(val) over() as n...原创 2018-12-21 05:31:19 · 235 阅读 · 0 评论 -
第1章 逻辑查询处理
PIVOT操作涉及以下三个逻辑阶段: P1: 分组 P2: 扩展 P3: 聚合 Eg: select empid,[2006],[2007],[2008] from (select empid,year(orderdate) as orderyear,val from Sales.OrderValues) ov pivot(sum(val) for orderyear in ([2006],[20...原创 2018-12-18 06:03:10 · 82 阅读 · 0 评论 -
第6章 子查询、表表达式和排名函数
6.1 子查询 6.1.1 独立子查询 关系除法,返回每个美国雇员至少为其处理过一个订单的所有客户,解法1: select custid from Sales.Orders where empid in (select empid from HR.Employees where country =‘USA’) group by custid having count(distinct empid)...原创 2018-12-19 05:55:58 · 257 阅读 · 0 评论