1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuthus5-Database-SQL-Actual-Combat

Клонировать/Скачать
61.对于employees表中给出奇数行的first_name.md 1.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:53 c66e7df

Получение первых имён с нечётными номерами строк в таблице employees

Описание задачи

Для таблицы 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 (@sn := @sn + 1) AS sn, employees.* FROM employees, (SELECT @sn := 0) a) t WHERE sn % 2 = 1

Сначала пронумеровать строки, а затем выбрать нечетные.

-- Внешний запрос для получения нечётных строк
SELECT e1.first_name FROM employees e1 WHERE (условие) % 2 = 1
-- Подсчёт для получения порядкового номера
SELECT COUNT(*) FROM employees e2 WHERE e1.first_name <= e2.first_name

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
git@api.gitlife.ru:oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
oschina-mirror
xuthus5-Database-SQL-Actual-Combat
xuthus5-Database-SQL-Actual-Combat
master