• Oracle的排序和限制条件(order by 和where)


    1Order by 子句的使用

    select column....

    from ....

    order by ...

        1) Order by子句在整个

        select语句中的位置:

        始终位于最后

        2) order by后可以跟什么:

        列名,列的别名,表达式,

        列出现在select关键字后的

        顺序(列号);

        3) order by后可以跟多列,

        表示先按第一列排序,

        如第一列有相同值再按

        第二列进行排序,如前二列

        均有相同值,则按第三列进行排序...

        4) ASC表升序,可以省略.

        DESC表降序。

        5)空值永远是最大的。

        升序排序的时候,空值放在最后

       降序排序的时候,空值放在最前面的

    note: 出现在order by子句之后的列,不一定出现在select子句中。

    2Where子句的使用

    语法:

    select col_name,...

    from tb_name

    where col_name 比较操作表达式

    逻辑操作符

      col_name 比较操作表达式

        1) 作用:对SQL语句返回的数据集进行筛选;

        2) 位置:紧跟在from子句后

        3) 内容:由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。

        4) 所有字符串和日期要用单引号括起来,数值不需要单引号。

        日期在Oracle里有特定的格式,’DD-MON-YY’(具体看日期的显示格式),

        否则作为一个字符串。

        5) 几种常见的操作符:

    1》逻辑比较操作符

    = > < >= <= != <> ^=

    需求:查找工资大于1000的所有员工的last_name和工资。

    需求:查找不在45号部门工作的所有员工的idlast_namedept_id,并且按照dept_id 升序进行排序

    select id,last_name,dept_id

    from s_emp

    where dept_id<>45

    order by dept_id;

    2sql比较操作符

    between and:在什么范围之内

    in(list):在一个列表中

    like:模糊查询,即值不是精确的值的时候使用

    通配符,即可以代替任何内容的符号

    %:通配0到多个字符

    _: 当且仅当通配一个字符

    转义字符:

    默认为\,可以指定 指定的时候用escape 符号指明即可,转义字符只能转义后面的一个字符

        between 1 and 4: 包括起止值。限定内容为14

    in (1,2,4): 限定内容为1,2,4

    is null:对null值操作特定义的操作符,不能使用=

    3》逻辑操作符

    当条件有多个的时候使用

    and:且逻辑

    or:或逻辑

    注意:and逻辑比or逻辑要高

    not:非逻辑  

    4)

    需求:

    1.查找员工id[5,20]之间的所有员工的idlast_name

     select id,last_name

     from s_emp

     where id between 5 and 20;

    or  

    select id,last_name

    from s_emp

    where id >=5 and id<=20;

    2.查找员工id不在[5,20]之间的所有员工的idlast_name

     select id,last_name

     from s_emp

     where id not between 5 and 20;

    or

    select id,last_name

    from s_emp

    where id <5 or id > 20;

    3.查找在43或者44号部门的员工的idlast_name;

    select id,last_name

    from s_emp

    where dept_id in(43,44);

    or

    select id,last_name

    from s_emp

    where dept_id = 43 or dept_id = 44;

    需求:查看员工名字以C字母开头的员工的id,工资。

    练习:查看员工名字长度不小于5,且第四个字母为n字母的员工id和工资

    需求:查看员工名字中包换一个_的员工id和工资

    需求:查看员工提成为为空的员工的id和名字

    select id,last_name,commission_pct

    from s_emp

    where commission_pct is null;

    3.逻辑操作符

    当条件有多个的时候使用

    and:且逻辑

    or:或逻辑

    注意:and逻辑比or逻辑要高

    not:非逻辑

    需求:查看员工部门id41且职位名称为Stock Clerk(存库管理员)的员工id和名字

    select id,last_name,dept_id,title

    from s_emp

    where dept_id = 41

    and

          title = 'Stock Clerk';

    练习:查看员工部门为41 或者 44号部门 且工资大于1000的员工id和名字

    select id,last_name,dept_id,title

    from s_emp

    where salary > 1000

    and

          (dept_id = 41

          or

          dept_id = 44);

          查看员工部门为41且工资大于1000 或者 44号部门的员工id和名字

    select id,last_name,dept_id,title

    from s_emp

    where salary > 1000

    and

          dept_id = 41

    or

          dept_id = 44;

      

  • 相关阅读:
    洛谷【P1177】【模板】归并排序
    洛谷【P1177】【模板】快速排序
    洛谷【P1104】生日(冒泡排序版)
    洛谷【P1104】生日(插入排序版)
    洛谷【P1104】生日(选择排序版)
    BZOJ5443:[CEOI2018]Lottery
    ReactNative---ref的用法和技巧
    ios---运用MJRefresh组件设置下拉刷新
    ReactNative---setState与性能的平衡
    ios---设置UITabBarController的字体颜色和大小
  • 原文地址:https://www.cnblogs.com/yzqm666/p/5854527.html
Copyright © 2020-2023  润新知