• 数据库学习笔记3 基本的查询流 2


    order by子句对查询结果集进行排序

    • 多列和拼接

    多列的方式就很简单了

    select firstname,lastname 
    from person.person
    order by lastname,firstname;
    

    这句话表示根据lastnamefirstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序。

    拼接很有意思,可以写成这个样子

    select 
    lastname+','+firstname as fullname
    from person.person
    order by lastname+','+firstname;
    

    这是把表达式放在了order by子句中了,当然也可以把order by子句中的表达式换成select子句中的别名fullname

    另外还有一种写法是把列的位置写在order by子句中,还不是很了解这样写法的目的,之后应该有更加详细的讲解。

    • 可以使用case
    from production.productdescription
    where 
    description like 'replacement%'
    order by 
    case 
        when left(Description,5)='This '
        then stuff(description,1,5,'')
    else 
        description
    end;
    

    这句话的意思是根据description排序,case的作用是如果description值得第一个单词是This就把它截掉。

    top谓词

    我印象中top的作用很小,也就是查询某一个表里的前几条数据,但是这次知道了还有percentwith ties的存在

    • percent

    遇到求百分比结果集的时候可以把top和percent连用

    select top(3) percent ... from ....
    

    这样的写法是表示查询前百分之30的数据。

    • with ties

    应对查询成绩前三名的同学如果简单的使用 select top(3) ... from 这样的句式其实是有问题的,如果满足条件的数据不只三条,比如说有好几个人并列第三。with ties就是来解决这个问题的。

    select top(3) with ties ...from ...
    

    这样的写法表示,如果最后一条有满足条件的数据也包含在查询结果里,所以最终查出来的结果并不一定是3条数据。

  • 相关阅读:
    python os
    [BZOJ2887] 旅行
    UVA1104 Chips Challenge
    CF364E Empty Rectangles
    CF1408H Rainbow Triples
    CF1214G Feeling Good
    CF506E Mr. Kitayuta's Gift
    采用Canal监听mysql数据库变化
    Java8 ParallelStream
    Java8 方法引用
  • 原文地址:https://www.cnblogs.com/hoyu/p/8512362.html
Copyright © 2020-2023  润新知