zoukankan      html  css  js  c++  java
  • 牛客:数据库SQL实战(一)查询入职最晚的员工的所有信息

    1 题目描述

    查找最晚入职员工的所有信息

    CREATE TABLE `employees` (
    `emp_no` int(11) NOT NULL,
    `birth_date` date NOT NULL,
    `first_name` varchar(14) NOT NULL,
    `last_name` varchar(16) NOT NULL,
    `gender` char(1) NOT NULL,
    `hire_date` date NOT NULL,
    PRIMARY KEY (`emp_no`));

    2 解题思路

    1 利用统计函数 MAX() 找出最大的时间值

    select * from employees where hire_date = (select max(hire_date) from employees);

    2 利用排序后筛选第一条

    不过该方法利用了limit 函数,在MySQL下是有这个函数的,但是在Oracle中并无此函数。

    select * from employees order by hire_date desc limit 1
    select * from employees order by hire_date desc limit 0,1

    LIMIT m,n : 表示从第m+1条开始,取n条数据;

    LIMIT n : 表示从第0条开始,取n条数据,是limit(0,n)的缩写。

    所以:LIMIT 0,1 表示从第一条数据开始,取1条数据,即最晚入职员工

    oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的,例如:

    select * from employees  where rownum<=1

    但是似乎牛客网是不支持oracle特有的SQL方法的。看了一下,牛客网SQL语句的编译使用的是SQLite

    3 采用top函数

    select top 1 * from employees order by hire_date desc

    不过牛客不通过这个代码。

  • 相关阅读:
    相机
    播放音乐
    录音
    NSURLConnection下载
    UITableView
    UIPageControl
    UIScrollView
    ajax禁止浏览器缓存
    java替换word2003
    退出登录
  • 原文地址:https://www.cnblogs.com/HuanChen1025/p/8999282.html
Copyright © 2011-2022 走看看