Score
0
Watch 44 Star 256 Fork 69

xuthus / 数据库SQL实战SQLMIT

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
61.对于employees表中给出奇数行的first_name.md 1012 Bytes
Copy Edit Web IDE Raw Blame History
xuthus authored 2019-08-12 23:23 . add:all

对于employees表中,给出奇数行的first_name

题目描述

对于employees表中,给出奇数行的first_name

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`));

答案

select e1.first_name from employees e1 where (select count(*) from employees e2 where e1.first_name <= e2.first_name) % 2 = 1

题解

对于MySQL版本来说,可以添加一列临时数据来进行奇偶排序,而后筛选出奇数行

select first_name from (select (@i := @i +1) sn,employees.* from employees,(select @i := 0) a) t where sn % 2 = 1

先排号码,而后取奇数

-- 外层获取奇数行
select e1.first_name from employees e1 where (条件) % 2 = 1
-- count获得排序号码
select count(*) from employees e2 where e1.first_name <= e2.first_name

Comment ( 0 )

Sign in for post a comment