Если это:
SELECT *
FROM Table
WHERE Date=( SELECT MAX(Date)
FROM Table
)
возвращает новую запись из таблицы, как получить запись вторая новейшая?
Если это:
SELECT *
FROM Table
WHERE Date=( SELECT MAX(Date)
FROM Table
)
возвращает новую запись из таблицы, как получить запись вторая новейшая?
SELECT *
FROM Table
WHERE Date = ( SELECT MAX(Date)
FROM Table
WHERE Date < ( SELECT MAX(Date)
FROM Table
)
) ;
или
SELECT TOP (1) *
FROM Table
WHERE Date < ( SELECT MAX(Date)
FROM Table
)
ORDER BY Date DESC ;
или
SELECT *
FROM
( SELECT t.*
, ROW_NUMBER() OVER(ORDER BY Date DESC) AS RowNumber
FROM Table t
) AS tmp
WHERE RowNumber = 2 ;
Если столбец Date
имеет уникальные значения, все три запроса дадут тот же результат. Если столбец может иметь повторяющиеся даты, тогда они могут давать разные результаты (когда есть связи на 1-м или 2-м месте). Первый запрос даже даст несколько строк в результате, если на втором месте есть ссылки.
"select TOP (1) *
from Table
WHERE Date<(SELECT MAX(Date) FROM Table)
ORDER BY Date DESC"
должен сделать трюк.
Пожалуйста, проверьте этот код.
SELECT * FROM category
WHERE Created_Time <(
SELECT MAX(Created_Time)
FROM category
)
ORDER BY Created_Time DESC
LIMIT 1
Прасад.
выберите вторую последнюю дату в sql:
SELECT MAX(YourDateColumn) FROM YourTable where ColumnId=2 and YourDateColumn <
(SELECT MAX(YourDateColumn) FROM YourTable where ColumnId=2)
Надежда помогает кому-то.
Попробуйте это
SELECT *
FROM Table
WHERE Date = ( SELECT MAX(Date) FROM Table
WHERE Date < ( SELECT MAX(Date) FROM Table)
) ;