Для таблицы 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 )