zoukankan      html  css  js  c++  java
  • SqlServer2005 查询 第七讲 order by

    今天我们来讲sql命令中的参数order by的用法

    order by

    • order by:可以理解成【以某个字段排序】
    • order by a,b // a和b都按升序
    • order by a,b desc // a升序,b降序
    • order by a desc, b // a降序,b升序
    • order by a desc,b desc //a和b都按降序
    • 如果不指定排序的标准,则默认是升序,升序用asc表示,默认可以不写。为一个字段指定的排序标准并不会对另一个字段产生影响,强烈建议为每个字段都指定排序的标准。
    • asc是升序的意思 默认可以不写 desc是降序

    下面我们来看例子来详细分析sql命令中的参数order by

    这些sql命令的样例都是基于scott数据库中的emp表

    
      select * from emp order by sal;     -- //如果不加什么排序标准的话,则默认是按照升序排序
                                          -- //下面我们来分析这条sql命令
                                          -- //首先会执行这个from emp,来找到emp表。
                                          -- //然后执行order by sal,按照sal这个字段进行升序排序
                                          -- //注意这个order by这个命令,我认为,在这个sql命令的底层中应该用了某种算法。
                                          -- //当第一次执行到order by sal 的时候,他应该就能遍历整个emp表的sal字段
                                          -- //然后按照sal这个字段的值进行排序。
                                          -- //这时候每条记录都以sal这个字段的值按升序排好了
                                          -- //然后开始查询第一条记录,并且输出第一条记录所有字段的值
                                          -- //然后查询第二条记录,然后第三条记录。。。。。。
                                          -- //直到查询到最后一条记录
    

    下面是上面这条sql命令所执行的结果


    我们可以看到sal这个字段的值都在增加

    我们再来看一个sql命令

          select * from emp order by deptno, sal      -- //先按照deptno升序排序,如果deptno相同,再按照sal升序排序
                                                    -- //执行的的顺序和上面一样。
    

    下面是上面这条sql命令所执行的结果


    我们可以看到deptno是按升序排序的,当deptno相同时,再按照sal进行升序排序

    因为比较简单,所以下面的例子我就不一一分析了

    select * from emp order by deptno desc, sal;
    	--先按deptno降序排序 如果deptno相同 再按照sal升序排序
    	--记住sal是升序不是降序
    	--order by a desc, b, c, d    desc只对a产生影响 不会对后面的b  c d 产生影响
    
    select * from emp order by deptno, sal desc
    	--问题:desc是否会对deptno产生影响?
    	--答案:不会
    	--先按deptno升序,如果deptno相同,再按sal降序
    	
    

    这一讲就到这里,下一讲我们来说模糊查询
    如果还有什么不懂的,可以加我qq485536603

  • 相关阅读:
    浏览器屏蔽百度搜索右侧热搜推荐脚本,收拾流氓头子
    js简单代码实现大banner轮播
    jquery回到顶部代码
    jquery实现隔行换色及移入移出效果
    利用:before和:after给段落添加效果的应用实例
    nginx配置文件应对网站攻击采集垃圾蜘蛛的方法总结
    Cygwin统计日志常用代码,欢迎各位大神补全
    原生js鼠标拖拽div左右滑动
    Day 82 VUE——基础
    Day 81 ES6
  • 原文地址:https://www.cnblogs.com/zjlk/p/11892065.html
Copyright © 2011-2022 走看看