क्या कोई Oracleक्वेरी बनाने का एक तरीका है जैसे कि इसमें एक MySQL limitखंड है?
में MySQL, मैं यह कर सकता हूँ:
select *
from sometable
order by name
limit 20,10
21 वीं से 30 वीं पंक्तियों को पाने के लिए (पहले 20 को छोड़ें, अगले 10 को दें)। पंक्तियों को इसके बाद चुना जाता है order by, इसलिए यह वास्तव में 20 वें नाम पर वर्णानुक्रम में शुरू होता है।
में Oracle, केवल एक चीज लोगों का उल्लेख है rownumछद्म स्तंभ है, लेकिन यह मूल्यांकन किया जाता है से पहले order by , इसका मतलब है जो:
select *
from sometable
where rownum <= 10
order by name
नाम से आदेशित दस पंक्तियों का एक यादृच्छिक सेट लौटाएगा, जो आमतौर पर मैं नहीं चाहता। यह भी एक ऑफसेट निर्दिष्ट करने के लिए अनुमति नहीं है।
ORDER BY। यह आदेश देने का पहला बिंदु है। यदि अंतर्निहित डेटा में परिवर्तन होता है और आपका परिणाम इसके कारण बदलता है, तो उपयोगकर्ता को पुरानी जानकारी के बजाय अपडेट किए गए परिणाम क्यों नहीं दिखाए जाते हैं? इसके अलावा, राज्य प्रबंधन एक प्लेग है जिससे जितना संभव हो उतना बचा जाना चाहिए। यह जटिलता और बग का एक निरंतर स्रोत है; यही कारण है कि कार्यात्मक इतना लोकप्रिय हो रहा है। और आप मेमोरी में सेट किए गए पूरे परिणाम को समाप्त करने के लिए कब जानेंगे? वेब में, आपके पास यह जानने का कोई तरीका नहीं है कि उपयोगकर्ता कब निकलता है।