Having 是对分组后的信息过滤,而where是对原始数据分组
限制结果集
1:select top * from T_Employee order by FSalary
2:(*)检索按照工资从高到底排序检索从第六名开始一共三个人的信息: select top 3 * from T_Employee where FNumber not in(selectTop 5 FNumber from T_Employee order by FSalary desc) order by FSalary desc(主要实现分页 Row_Number函数)
去掉重复数据
1:select FDepartment from T_Employee-select distinctFDepartment from T_Employee
2:distinct 是对整个结果几进行数据重复处理的,而吧是针对每一列,因此下面的语句并不会只保留FDepartment进行重复处理:
Select distinctFDepartment,FSubCompany from T_Employee
注意:为表增加字段 alter Table 表名 ADD 字段VARCHAR(10)
注意:如果使用distinct 有多个字段,完全不重复的才算
联合结果集
1:简单的结果集联合
Select FNumber,FName,FAgefrom T_Employee union select FIdCardNumber,FName,FAge from T_Employee
基本原则:每一个结果集必须有相同的列数,每一个结果集的列必须类型相容
2:selectFNumber,FName,FAge,FDepartment from T_Employee union selectFIdCardNumber,FName,FAge,’临时工,无部门’ from T_Employee
Union all 合并两个结果集,并将其完全重复的数据合为一条数据
Select FName,FAgefrom T_Employee nuion select FName,FAge from T_TempEmployee
Select FName,FAgefrom T_Employee
union all
select FName,FAgefrom T_TempEmployee
union因为要进行重复扫描,所以效率低,因此不是确定要合并重复行,那么就用union all
union 要将重复数据合并,union all是不去重复数据
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/