Saya mengalami kesulitan saat mengubah prosedur yang tersimpan dari SQL Server ke Oracle agar produk kami kompatibel dengannya.
Saya memiliki pertanyaan yang mengembalikan catatan terbaru dari beberapa tabel, berdasarkan stempel waktu:
SQL Server:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
=> Itu akan mengembalikan saya rekor terbaru
Tapi Oracle:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
=> Itu akan mengembalikan saya catatan tertua (mungkin tergantung pada indeks), terlepas dari ORDER BY
pernyataannya!
Saya merangkum kueri Oracle dengan cara ini agar sesuai dengan kebutuhan saya:
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
dan berhasil. Tapi kedengarannya seperti retasan yang mengerikan bagi saya, terutama jika saya memiliki banyak catatan di tabel yang terlibat.
Apa cara terbaik untuk mencapai ini?