#sql
#sql
Вопрос:
итак, у меня есть таблица sql, которая включает строки с серийными номерами. Теперь мне нужно выбрать только одну строку, и это должна быть строка с наибольшим серийным номером.
Пример
17 Cool Dude
18 Riha
Мне нужно выбрать строку «18 Riha» …. как мне это сделать?
Спасибо.
Комментарии:
1. Не забудьте указать, о какой реализации SQL SQL вы говорите (MySQL, MS SQL Server, Oracle, PostgreSQL, …)
Ответ №1:
SELECT * FROM table ORDER BY serial DESC LIMIT 1;
Ответ №2:
В MSSQL вы можете использовать ключевое слово TOP.
SELECT TOP 1 * FROM table ORDER BY serial DESC
Комментарии:
1. мне нужно выбрать всю строку с ее данными. можете ли вы дать мне код для этого. Спасибо.
2.
SELECT TOP 1 * FROM table ORDER BY serial DESC
Обновленный ответ, чтобы соответствовать.
Ответ №3:
РЕДАКТИРОВАТЬ: Специфичный для Oracle
Получите максимальный серийный номер, а затем получите строку / rows (если максимальный серийный номер не уникален), которая имеет серийный номер.
select * from table1
where id = (select max(id) from table1);
Или упорядочите результаты по убыванию идентификатора, а затем получите первую строку в результирующем наборе..
select * from (
select * from table1
order by id desc)
where rownum = 1
или используйте аналитические функции…
select * from
(select t1.*, rank () over (order by t1.id desc) rnk
from table1 t1
) where rnk = 1;