有一张emloyees表:
请根据name排名(按升序排序),找到排名为奇数对应的name值,结果如下(输出结果不用排序):
下面MySQL语句正确的是:
下面MySQL语句正确的是:
SELECT e.name FROM emloyees e JOIN (SELECT emp_no,name, DENSE_RANK() OVER(ORDER BY name) r FROM employees) t ON e.emp_no = t.emp_no WHERE MOD(t.r, 2) = 1;
SELECT e.name FROM employees e JOIN (SELECT name, DENSE_RANK() OVER(ORDER BY name) AS num FROM employees) AS t ON e.name = t.name WHERE t.num & 1 = 1;
SELECT name FROM employees WHERE EXISTS (SELECT name FROM employees WHERE ROW_NUMBER() OVER(ORDER BY name)%2 = 1);
SELECT e1.name FROM (SELECT name,DENSE_RANK() OVER(ORDER BY name)AS rank FROM employees) e1 WHERE e1.rank % 2 = 1;
CREATE TABLE employees ( emp_no NUMBER(6, 0), birth_date DATE, name VARCHAR(10), gender CHAR(1), hire_date DATE ); INSERT INTO employees VALUES( 10001, DATE '1953-09-02', 'Georgi', 'M', DATE '1986-06-26' ); INSERT INTO employees VALUES( 10002, DATE '1964-06-04', 'Bezalel', 'F', DATE '1985-11-21' ); INSERT INTO employees VALUES( 10003, DATE '1955-01-21', 'Kycichi', 'M', DATE '1989-09-12' ); INSERT INTO employees VALUES( 10004, DATE '1953-04-20', 'Anneke', 'F', DATE '1989-06-02' );