SQL Server进阶(七)集合运算

概述

为什么使用集合运算:

  在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。

并集运算(UNION)

并集:两个集合的并集是一个包含集合A和B中所有元素的集合。

交集运算(INTERSECT)

交集:两个集合(记为集合A和集合B)的交集是由既属于A,也属于B的所有元素组成的集合。

差集运算(EXCEPT)

差集:两个集合(记为集合A和集合B)的由属于集合A,但不属于集合B的所有元素组成的集合。

小结

集合运算的优先级

1.INTERSECT>UNION=EXCEPT

2.首先计算INTERSECT,然后从左到右的出现顺序依次处理优先级的相同的运算。

3.可以使用圆括号控制集合运算的优先级,它具有最高的优先级。

在排序函数的OVER字句中使用 ORDER BY ( SELECT <常量> )可以告诉SQL Server不必在意行的顺序。

原文地址:https://www.cnblogs.com/cnki/p/9574845.html

时间: 2024-08-26 16:46:27

SQL Server进阶(七)集合运算的相关文章

Sql学习笔记3——集合运算、空值和聚集函数

1.集合运算 SQL作用在关系上的union.intersect和except(Oracle中用minus代替except)运算,对应于数学集合论中的并.交和差运算.这三个运算都自动去除重复. eg: 找出在2009年秋季学期开课但不在2010年春季开课的所有课程 (select course_id from section where semester=‘Fall’ and year=2009) except (select course_id from section where semes

SQL Server进阶(六)表表达式

概述 SQL Server支持四种类型的表表达式:派生表,公用表表达式,视图和内联表值函数. 派生表 派生表是一个查询结果生成的表,类似于临时表. 派生表可以简化查询,避免使用临时表.相比手动生成临时性能更优越.派生表与其他表一样出现在查询的FROM子句中 select * from (select * from athors) temp temp 就是派生表 派生出来的表必须要是一个有效的表.因此,它必须遵守以下几条规则: 1. 所有列必须要有名称 2. 列名称必须是要唯一 3. 不允许使用O

SQL基础学习_06_集合运算和联结

集合运算 1. 并集:UNION ? ? 例: ? ? SELECT shohin_id, shohin_mei? ? FROM Shohin? ? UNION? ? SELECT shohin_id, shohin_mei? ? FROM Shohin2; ? ? 将Shohin和Shohin2两张表的shohin_id和shohin_mei两列取并集: ? ? 注意,UNION操作时,列数必须相等,且每列的数据类型应该相同 ? ? 保留重复行: UNION ALL 2. 交集:INTERSE

SQL Server进阶(十五)常用函数

在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理. FROM WHERE GROUP BY HAVING SELECT ORDER BY IF EXISTS (SELECT 1 FROM TableName WHERE UserCode = @UserCode) BEGIN UPDATE TableName SET NotPushBeginTime = @NotPushBeginTime, NotPushEndTime = @NotPushEndTime WHERE UserCod

SQL Server进阶

在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理. FROM WHERE GROUP BY HAVING SELECT ORDER BY 原文地址:https://www.cnblogs.com/cnki/p/9581571.html

SQL Server进阶(三)单表查询

示例数据库 点我下载 一条完整的sql语句 select top | distinct 字段, 表达式, 函数, ... from 表表达式 where 筛选条件 group by 分组条件 having 筛选条件 order by 排序依据; SQL的执行顺序: SELECT语句的元素 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders FROM Sales.Orders WHERE custid = 71 GRO

SQL Server进阶(四):Join联结查询

测试数据脚本 1 CREATE TABLE Atable 2 ( 3 S# INT, 4 Sname nvarchar(32), 5 Sage INT, 6 Sfrom nvarchar(8) 7 ) 8 9 10 insert into Atable 11 select 1,N'刘一',18,N'A' union all 12 select 2,N'钱二',19,N'A' union all 13 select 3,N'张三',17,N'A' union all 14 select 4,N'李

SQL Server进阶(十四)常用函数

FOR XML PATH 利用 T-sql 的从句 for xml path('') 实现多行合并到一行, 并带有分隔符 https://blog.csdn.net/rav009/article/details/50723307 SELECT ',' + au.UserCode FROM dbo.AcceptanceUser au FOR XML PATH ('') SELECT STUFF((SELECT ',' + au.UserCode FROM dbo.AcceptanceUser au

SQL SERVER 进阶之特殊用法篇

1.查询隶属的数据库 2.查询已知部分名字的表名 3.银行家算法,四舍六入五成双 4.生成序号 5.判断临时表存在 6.计算表内列数 7.初始化自增长 8.设置接下来的语句执行几行 9.返回当前语句生成的自增长的编码