黑马程序员 SQL数据分组-限制结果集-去掉重复数据

来源:互联网 发布:查询淘宝关键词排名 编辑:程序博客网 时间:2024/05/01 12:51

----------------------Windows Phone 7手机开发  .Net培训 期待与您交流! ----------------------

1.SQL中的多值匹配很有趣哦:你来看看select * from 表名 where FAge in(23,25,26);  是不是这样就比select * from 表名 where FAge=23 or FAge=25 or FAge=26;简单很多哦;

2.SQL中的范围值:select * from 表名 where FAge Between 23 and 28;  //查询表中年龄字段为23到28岁之间的数据,还有一种方法就是:select * from 表名 where FAge>23 and FAge<28;  看看谁更方便吧。。

3.SQL数据分组:按照年龄进行分组统计各个年龄阶段的人数:select FAge,Count(*) from 表名 Group by Fage;  需要提醒的是:Group by 子句必须放到where语句的之后哦。。。。

4.SQL数据分组真伪大分辨:<没有出现在Group by 子句中的列是不能放到select语句后的列名列表中的(聚合函数除外)>看看谁是真谁假吧!呵呵,没错,相信你们也看出来了。。
  <1>错误:select FAge,FSalary from 表名 Group by FAge;
  <2>正确:select FAge,AVG(FSalary) from 表名 Group by FAge;

5.SQL中的限制结果集行数:select top 5 * from 表名 order by 字段名 Desc;  //查询字段前5行数据并且按照降序排列哦
还有稍微难点的就是:检索按照工资从高到低排序检索从第六名开始,前面的就不显示了:select top 3 * from 表名 where FNumber not in(select top 5 FNumber from 表名 order by FSalary Desc)order by FSalary Desc; //注意:这种方式运用于以后常用的翻页查询。出去子查询中的前5行数据后再查询前3行数据。

6.相信大家有这么一个烦恼,就是在查看表数据的时候发现有很多相重复的数据,要是有一个办法能够让他们合体就好了!没错,我告诉你真有这么个方法哦,不过还是得按照实际情况来使用哦,并不是一定要这么做哦!------例如:select distinct 字段名 from 表名;  呵呵,相信大家又要问了,那个distinct到底是什么意思啊。 不要着急,让我慢慢告诉你,它表示的是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留Fdepatment进行重复值处理:select distinct 字段名其一,字段名其二 from 表名;

7.Union all大家了解它吗?不了解没关系。Union它是合并两个查询结果集,并且将其中完全重复的数据行合并为一条  ----例如:select FName from 表名 Union all select FName from 表名;Union因为要进行重复值扫描,所以效率很低,因此如果不是确定要合并重复行,那么就用Unin all。

----------------------Windows Phone 7手机开发  .Net培训 期待与您交流! ----------------------


详细请查看:黑马训练营

 

原创粉丝点击