• 基础查询(二)


    5、排序

    单一字段排序:#将薪水按照从小到大 的进行排序

    1、select 
    ename, job ,sal, comm
    from emp
    order by sal asc;

    注意:asc升序,默认asc不用写

    #将薪水按照从大到小的进行排列-降序DESC

    2、select 
    ename, job, sal, comm 
    from emp 
    order by sal desc;

    #多字段进行排序

    3、select 
    ename, job, sal, comm 
    from emp 
    order by job desc,sal desc;

    6、函数

    #将员工的名字全部转成小写

    1select 
    lower(ename) ename, job, sal, comm 
    from emp;

    #转大写

    #通过小写临时表 将员工的名字全部转成大写

    2select 
    upper(temp.ename) ename, temp.sal, temp.job
    from (select
    lower(ename) ename, job,sal,comm 
    from emp) as temp;

    #字符串截取  substr

    #查询员工姓名种第二个字母是M的所有员工

    #substr(被截取字段名称, 起始位置, 截取长度)

    3select 
    ename 
    from emp 
    where substr(ename, 2, 1)='M';

    #取一个字符串的长度

    #取得部门名称的长度

    4select 
    deptno,dname, length(dname) 长度
    from dept;

    #去掉收尾的空格trim

    MGR编号为7566的job字符串长度

    5select 
    ename, length(trim(job)) 长度 
    from emp 
    where mgr='7566';

    #四舍五入(round)

    6select round(1.1) 舍去;

     

    7select round(1.5) 进位;

     

    #生成随机数

    #生成0-1的随机数

    8select rand();

     #生成随机数0-100

    select round(rand()*100);

    #ifnull 空值处理函数

    #如果查询字段是null 填充0

    10select 
    ename,ifnull(comm, 0) comm
    from emp;

    #匹配函数

    -- case job

    -- when 'xxx' then yyyy

    -- when 'xxx' then yyyy

    -- else zzz

    -- END

    #匹配工作岗位 当为manager时 薪水上调10% 当为salesman时,薪水上调50%其他岗位薪水不变

    11select 
    ename, job, sal as odsal,
    (case job 
    when 'MANAGER'
    then sal*1.1
    when 'SALESMAN'
    then sal*1.5
    else sal
    end) as newsal 
    from emp;

    #将结果种的重复行去掉、查询公司有哪些工作岗位

    12select 
    distinct job 
    from emp;

     

    7、分组查询

    #查出每个工作岗位的最高薪水和其他重要信息

    select 
    max(sal) sal, job
    from emp 
    group by job
    order by sal desc;

    8、分组查询-having数据筛选

    #找出clerk工种除外的其他每个工种平均收入水平大于2000的工种信息

    select 
    job, avg(sal + ifnull(comm, 0)) 平均工资
    from emp 
    where job!='CLERK'
    group by job
    having avg(sal+ifnull(comm, 0))>2000;

    9、简单查询语句顺序总结

    select:查询
    from: 从某张表检索数据
    where:经过条件筛选
    group by:分组
    having:分组后再进行条件筛选
    order by:排序
  • 相关阅读:
    oracle 11g 断电后 无法启动 ora 00600 kcratr_scan_lastbwr 修复小计
    arcgis for python (arcpy) 入门
    解决 构造函数 包含业务逻辑 IDE无法初始化界面的问题
    arcgis 10.1 发布 气温插值GP服务小计
    执行 Animation先决条件
    ASP.NET MVC3学习心得视图和模型
    Axure使用心得分享
    ASP.NET MVC3学习心得表单和HTML辅助方法
    ASP.NET MVC3学习心得入门和控制器
    WindowsPhone 中SQL CE数据库的使用
  • 原文地址:https://www.cnblogs.com/HelloM/p/13545593.html
Copyright © 2020-2023  润新知