Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

जब कोई 'आदेश' निर्दिष्ट नहीं किया जाता है, तो आपके रिकॉर्ड सेट के लिए एक क्वेरी किस क्रम को चुनती है?

यदि आप ORDER BY निर्दिष्ट नहीं करते हैं , तो कोई आदेश नहीं . है परिभाषित।

परिणाम एक मनमाना क्रम में लौटाए जा सकते हैं - और यह समय के साथ बदल भी सकते हैं।

संबंधपरक डेटाबेस में कोई "प्राकृतिक क्रम" या ऐसा कुछ भी नहीं है (कम से कम जो कुछ मुझे पता है)। विश्वसनीय आदेश प्राप्त करने का एकमात्र तरीका स्पष्ट रूप से . है ORDER BY निर्दिष्ट करना खंड।

अपडेट करें: उन लोगों के लिए जो अभी भी मुझ पर विश्वास नहीं करते हैं - यहां दो उत्कृष्ट ब्लॉग पोस्ट हैं जो इस बिंदु को स्पष्ट करते हैं (कोड नमूने के साथ!):

  • कॉनर कनिंघम (कोर SQL सर्वर इंजन टीम पर आर्किटेक्ट):कोई सीटबेल्ट नहीं - ऑर्डर के बिना ऑर्डर की उम्मीद
  • अलेक्जेंडर कुजनेत्सोव:बिना ORDER BY, कोई डिफ़ॉल्ट सॉर्ट ऑर्डर नहीं है (वेब ​​आर्काइव में पोस्ट)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे जांचें कि इसे बनाने से पहले कोई संग्रहीत कार्यविधि मौजूद है या नहीं?

  2. मैं SQL सर्वर प्रबंधन स्टूडियो के साथ एक समग्र कुंजी कैसे बनाऊं?

  3. पदानुक्रमित डेटा की प्रतिलिपि बनाते समय अभिभावक-बाल संबंधों को सुरक्षित रखें

  4. एसएसआईएस फ्लैट फ़ाइल स्रोत में खराब पंक्ति को कैसे छोड़ें?

  5. सबक्वेरी में ऑर्डर के साथ एसक्यूएल त्रुटि