मैं अपने उत्पाद को इसके साथ संगत करने के लिए SQL सर्वर से Oracle में संग्रहीत कार्यविधियों को परिवर्तित करने में कठिन समय बिता रहा हूं।
मेरे पास कुछ सवाल हैं जो टाइमस्टैम्प पर आधारित कुछ तालिकाओं के सबसे हालिया रिकॉर्ड को लौटाते हैं:
एस क्यू एल सर्वर:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
=> जो मुझे सबसे हालिया रिकॉर्ड लौटाएगा
लेकिन ओरेकल:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
=> यह ORDER BY
कथन की परवाह किए बिना मुझे सबसे पुराना रिकॉर्ड (शायद सूचकांक के आधार पर) लौटाएगा !
मैंने अपनी आवश्यकताओं से मेल खाने के लिए Oracle क्वेरी को इस तरह समझाया:
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
और यह काम करता है। लेकिन यह मेरे लिए एक भयानक हैक की तरह लगता है, खासकर अगर मेरे पास शामिल तालिकाओं में बहुत सारे रिकॉर्ड हैं।
इस लक्ष्य को हासिल करने का सबसे अच्छा तरीका क्या है ?