• 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

  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/zjlk/p/11892065.html
Copyright © 2020-2023  润新知