#sql #oracle
#sql #Oracle
Вопрос:
я попробовал простой
select date_created from smc_log_messages where rownum =1
order by date_created desc
и он возвращает дату, например
15-SEP-16 10.15.49.099000000 PM
Однако, когда я запускаю
select date_created from smc_log_messages
order by date_created desc
Я вижу такие данные, как
30-SEP-16 12.39.00.006000000 AM
30-SEP-16 12.38.59.997000000 AM
Итак, в основном добавление rownum влияет на результаты. Я делаю что-то не так?
Комментарии:
1. вы можете просто упорядочить ее по desc
Ответ №1:
Если вам нужна самая последняя дата, используйте:
select max(date_created)
from smc_log_messages ;
Если вам нужна самая последняя строка в Oracle 12C :
select lm.*
from smc_log_messages lm
order by lm.date_created desc
fetch first 1 row only;
В более ранних версиях:
select lm.*
from (select lm.*
from smc_log_messages lm
order by lm.date_created desc
) lm
where rownum = 1;
Ответ №2:
используйте функцию MAX только для получения последней и верхней записи: ВЫБЕРИТЕ MAX() ИЗ
это будет работать.