2016-09-30 5 views
0

ich versuchte einfachholen nur die letzte Zeile in Oracle SQL

select date_created from smc_log_messages where rownum =1 
order by date_created desc 

und es gibt ein Datum wie

15-SEP-16 10.15.49.099000000 PM 

Allerdings, wenn ich laufen

select date_created from smc_log_messages 
    order by date_created desc 

I-Daten sehen wie

30-SEP-16 12.39.00.006000000 AM 
30-SEP-16 12.38.59.997000000 AM 

Also, im Grunde das Hinzufügen der Rownum beeinflusst die Ergebnisse. Mache ich etwas falsch?

+0

können Sie es einfach durch desc – Beginner

Antwort

8

Wenn Sie das jüngste Datum wollen, dann verwenden:

select max(date_created) 
from smc_log_messages ; 

Wenn Sie das letzte Zeile in Oracle 12C +:

select lm.* 
from smc_log_messages lm 
order by lm.date_created desc 
fetch first 1 row only; 

In früheren Versionen:

select lm.* 
from (select lm.* 
     from smc_log_messages lm 
     order by lm.date_created desc 
    ) lm 
where rownum = 1; 
+0

@ vkp bestellen. . . Vielen Dank. –

0

Verwenden Sie die MAX-Funktion nur, um den neuesten und besten Datensatz zu erhalten: SELECT MAX() VON

das wird funktionieren.

Verwandte Themen