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

जब ऑर्डर कॉलम में समान डेटा होता है तो ऑर्डरबाय क्लॉज अलग-अलग परिणाम सेट करता है

यह "डिज़ाइन द्वारा" है

SQL सर्वर (या कोई RDBMS) किसी विशेष क्रम में परिणामों को लौटाए जाने की गारंटी नहीं देता है यदि कोई ORDER BY नहीं है खंड निर्दिष्ट किया गया था। कुछ लोग सोचते हैं कि पंक्तियों को हमेशा संकुल अनुक्रमणिका क्रम या भौतिक डिस्क क्रम में लौटाया जाता है यदि खंड द्वारा कोई आदेश निर्दिष्ट नहीं किया गया है। हालांकि, यह गलत है क्योंकि ऐसे कई कारक हैं जो क्वेरी प्रोसेसिंग के दौरान पंक्ति क्रम को बदल सकते हैं। समानांतर HASH जॉइन उस ऑपरेटर के लिए एक अच्छा उदाहरण है जो पंक्ति क्रम को बदलता है।

यदि आप 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. अमान्य ऑब्जेक्ट नाम SQL Server 2008 R2 - संग्रहीत कार्यविधि

  2. .net कोड से संग्रहीत कार्यविधि में तालिका मान पैरामीटर कैसे पास करें?

  3. SQL सर्वर अद्वितीय बाधाओं में अंतर्दृष्टि

  4. SQL सर्वर में सांख्यिकी IO क्या है?

  5. क्या क्वेरी बिल्डर में INSERT स्टेटमेंट का उपयोग करते समय 2 टेबल जोड़ने के तरीके हैं?