Tuesday 15 April 2014

row number - SQL Server ROW_NUMBER behavior -


मेरे पास निम्न प्रश्न हैं:

  SELECT * FROM (SELECT a.TeacherID, a .UniversityID, ROW_NUMBER () से अधिक (a.TeacherID द्वारा आदेश) ROWNUM के रूप में SelectAll से एक वाम mp_Ratings पर a.TeacherID = r.TeacherID ग्रुप द्वारा a.TeacherID, a.UniversityID) TeacherInfo के रूप में आर में शामिल होने के जहां 10 और 50 के बीच ROWNUM < / कोड>  

और यह ठीक काम करता है अब, मैं की तरह कुछ करने के लिए करना चाहते हैं:

  चुनें * से (a.TeacherID, a.UniversityID, ROW_NUMBER () से अधिक (a.TeacherID द्वारा आदेश) ROWNUM के रूप में चयन SelectAll एक बाएं से शामिल हों mp_Ratings पर a.TeacherID = r.TeacherID ग्रुप द्वारा a.TeacherID, a.UniversityID) TeacherInfo के रूप में आर कहां 10 और 50 और UniversityID = 2  के बीच ROWNUM  

मैं क्योंकि कुछ भी नहीं मिलता है < कोड> यूनिवर्सिटी = 2 पंक्ति संख्या के आसपास शुरू होता है 29 9 1 । मैं प्रत्येक अलग UniversityID के साथ Row_Number को रीसेट करने में सक्षम होना चाहता हूं।

मैंने निम्नलिखित की कोशिश की:

  SELECT *, ROW_NUMBER () ओवर (शिक्षक आईडी द्वारा आदेश) रोनाम से एफओआर (SELECT a.TeacherID, a.UniversityID से चुनेंसभी एक बाएं शामिल हों mp_Ratings पर a.TeacherID = r.TeacherID ग्रुप द्वारा a.TeacherID, a.UniversityID) TeacherInfo के रूप में आर कहां UniversityID = 2   

जो row_numbers के नए सेट लाता है हर खोज के लिए, लेकिन अगर मैं रोनाम उपनाम का उपयोग करने की कोशिश करता हूं:

  SELECT *, ROW_NUMBER () ओवर (शिक्षक आईडी द्वारा) रोवम से (चयन करें) a.TeacherID, a.UniversityID SelectAll से एक वाम शामिल हों mp_Ratings पर a.TeacherID = r.TeacherID ग्रुप द्वारा a.TeacherID, a.UniversityID) TeacherInfo के रूप में आर कहां UniversityID = 2 और ROWNUM 10 और 20   

मुझे मिल गया

संदेश 207, स्तर 16, राज्य 1, रेखा 4 अमान्य स्तंभ नाम 'रोनाम'।

क्या गलत है मेरा चयन करें? मैं रोनाम उपनाम क्यों नहीं देख सकता?

आपको बस आंतरिक कोड के लिए WHERE खंड को स्थानांतरित करें।

  चुनें शिक्षक आईडी, विश्वविद्यालय आईडी, रोनाम से (SELECT a.TeacherID, a.UniversityID, ROW_NUMBER) (ऑर्डर बाय a.TeacherID) के रूप में ROWNUM SelectAll से एक वाम mp_Ratings शामिल हों r पर a.TeacherID = r.TeacherID कहां UniversityID = 2 a.TeacherID, a.UniversityID) TeacherInfo के रूप में द्वारा समूह जहां 10 और 50 के बीच ROWNUM;   

आप क्वेरी के बाहरी संस्करण में रोनाम उपनाम तक नहीं पहुंच सकते क्योंकि उपनाम अभी तक मौजूद नहीं है SELECT पार्सेड दूसरे-अंतिम, पहले ORDER BY है। WHERE से पहले संसाधित किया जाता है SELECT

No comments:

Post a Comment