SQL从入门到基础–08 Union、Union all及案例

一、联合结果集

1. 简单的结果集联合:

Select FNumber,FName,FAge from T_Employee union select FidCardNumber,FName,FAge from T_Employee

2. 基本的原则:每个结果集必须有相同的列数:每个结果集的列必须类型相容。

3. Select FNumber,FName,FDepartment from T_Employee union select FIdCardNumber,FName,FAge,’临时工,无部门’ from T_Employee

二、union all

1. Select FName,FAge from T_Employee union select FName,FAge from T_TempEmployee.

union合并两个查询结果集,并且将其中完全重复的数据行合并为一条。

2. Select FName from T_Employee union all select FName from T_TempEmployee.

union因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,就用union all.

三、案例1

四、案例二

时间: 2024-10-13 11:51:26

SQL从入门到基础–08 Union、Union all及案例的相关文章

SQL从入门到基础–03 SQLServer基础1(主键选择、数据插入、数据更新)

一.SQL语句入门 1. SQL语句是和DBMS"交谈"专用的语句,不同DBMS都认SQL语法. 2. SQL语句中字符串用单引号. 3. SQL语句中,对于SQL关键字大小写不敏感,对于字符串值大小写敏感. 4. 创建表.删除表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署.数据导入中用的很多,Create Table T_Person(Id int not NULL,Name nvarchar(50),Age int NULL).Drop Table T_Person1

SQL从入门到基础 - 04 SQLServer基础2(数据删除、数据检索、数据汇总、数据排序、通配符过滤、空值处理、多值匹配)

一.数据删除 1. 删除表中全部数据:Delete from T_Person. 2. Delete 只是删除数据,表还在,和Drop Table(数据和表全部删除)不同. 3. Delete 也可以带where子句来删除一部分数据:Delete from T_Person where FAge>20. 二.数据检索 1. 执行备注中的代码创建测试数据表. 2. 简单的数据检索:select *from T_Employee(*表示所有字段) 3. 只检索需要的列:select FNumber

SQL从入门到基础 - 01 数据库开发及ADO.Net

一.数据库概述 1. 用自定义文件格式保存数据的劣势:并发性差,查找数据的速度差. 2. DBMS(DataBase Management System数据库管理系统)和数据库.平时谈到“数据库”的含义(1)MSSQLServer.Oracle等某种DBMS:(2)存放一堆数据表的一个分类(Catalog). 3. 不同品牌的DBMS有自己的不同特点:MYSQL(适合开发网站.速度快.不严格.可能会丢失数据).MSSQLServer.DB2.Oracle.Access.Sybase等. 4. S

SQL从入门到基础 - 06 限制结果集范围

一.限制结果集行数 1. Select top 5* from T_Employee order by FSalary DESC 2. (*)检索按照工资从高到低排序检索从第六名开始一共四个人的信息: select top 4 * from T_Employee where FNumber not in (select top 5 FNumber from T_Employee order by FSalary DESC) order by FSalary DESC 3. SQLServer20

SQL从入门到基础 - 07 抑制重复数据

一.去掉数据重复 distinct 1. Select FDepartment from T_Employee →select distinct FDepartment from T_Employee 2. distinct是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留FDepartment进行重复值处理: Select distinct FDepartment,FSubCompany from T_Employee

SQL从入门到基础 - 02 SQLServer的使用

一.SQLServer的管理 服务器名称:ICECOA-81DEA7A2.\SQLEXPRESS 1. 数据库->表->字段->主键 2. 编辑表 二.数据类型 1. bit:相当于bool类型,只有两个值0和1 2. char(n):长度为10 的字符 3. int(32位) 4. bigint(64位) 5. nvarchar(n).nvarchar(MAX):若字段里含有非ASCII码的字符时用 6. varchar(n):字段是ASCII码的字符 7. Datetime:时间 v

Sql Server 存储过程中查询数据无法使用 Union(All)

原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正常的SQL语句,使用了Union(All)查询: SELECT ci.CustId --客户编号 , ci.CustNam --客户名称 , ci.ContactBy --联系人 , ci.Conacts --联系电话 , ci.Addr -- 联系地址 , ci.Notes --备注信息 , ai

oracle 两个sql带有order by的使用union/union all的时候报错 'ORA-00933:sql命令未正确结束' 处理办法

错误语句:select id,name from s1 order by stime union all select id,name from s2 order by stime 报错原因:oracle 搜索到order by后认为整个select语句就该结束了但是后面还有union all所以数据库无法解析,导致报错 处理办法:with a1 as (select id,name from s1 order by stime) , a2 as (select id,name from s2

sql inner join , left join, right join , union,union all 的用法和区别

Persons 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing "Orders" 表: Id_O OrderNo Id_P 1 77895 3 2 44678 3 3 22456 1 4 24562 1 5 34764 65 1.inner