Because Oracle looks at rownum prior to sorting, this isn't guaranteed to work:
SELECT to_char(last_test_date, 'mm-dd-yyyy hh24:mi:ss'),
DECODE(response_time,-1,'Fail',DECODE(response_time,1,'Pass',
'Delay')) result,
response_time,
message,
checksum,
emails_received,
services_received
FROM email_health
WHERE rownum < 20
ORDER BY last_test_date DESC
In Oracle, here is one solution:
SELECT *
FROM (
SELECT to_char(last_test_date, 'mm-dd-yyyy hh24:mi:ss'),
DECODE(response_time,-1,'Fail',DECODE(response_time,1,'Pass',
'Delay')) result,
response_time,
message,
checksum,
emails_received,
services_received
FROM email_health
ORDER BY last_test_date DESC
)
WHERE rownum < 20
The inner query selects and sorts the data. The outer query selects from that and then applies the rownum test.
No comments:
Post a Comment