SQL Server 2008 R2: ROW_NUMBER() -


मेरे पास निम्न डेटा है:

उदाहरण :

  तालिका vdata (कोला varchar (10), कोल्ब varchar (10)) बनाओ; Vdata मूल्यों ('ए', 'बी'), ('बी', 'सी'), ('ए', 'एक्स'), ('जेड', 'एल'), ('एन', ' एम '), (' ओ ',' पी '), (' आर ',' Z '), (' एक्स ',' वाई '), (' टी ',' एन '), (' एफ ',' ई '), (' जी ',' एच ');  

ऐसा लगता है:

  vdata से * चुनें *; कोला कोल -------------- ABBCAXZLNMOPRZXYTNFEG H  

ध्यान दें : अब मैं केवल उस डेटा को दिखाना चाहता हूं जिसमें कोला को colb OR colb में मौजूद होना चाहिए cola < / कोड> और मैं अगले अभिलेखों में उपस्थित मूल्यों के अनुसार प्रत्येक रिकॉर्ड की पंक्ति संख्या दिखाने के लिए कॉलम जोड़ना चाहता हूं। पूर्व> रोलन बक्सा कोला कोल ------------------------ 1 एबी 1 एएक्स 1 बीसी 2 एनएम 3 आरजेड 2 टीएन 1 एक्स 3 जीएल

उपर्युक्त परिणाम का स्पष्टीकरण : पहली पंक्ति में शुरुआत में 1 और अगले दो अभिलेखों को आवंटित किया गया है क्योंकि कोई भी कॉलम (कोला या कॉलब) में मान ए या बी इसलिए फाउंटेन रिकॉर्ड को दिया गया rownumber 2 क्योंकि इसमें कोई भी मान नहीं है A or B और उसी तरह की प्रक्रिया जारी रहेगी और ध्यान दें कि रिकॉर्ड 7 में X और y इसका रोलन्यूमर है 1 क्योंकि यह से संबंधित है, तालिका में 2 जी ए और एक्स

मेरी बुरी कोशिश :

  SELECT row_number () से अधिक (कोला द्वारा क्रमबद्धता के अनुसार विभाजन) कोडा में कोला (vdata से colb चुनें) या कोल्ब में (vdata से कोला चुनें) कोला, colb  

ऑर्डर देने के लिए आपको तालिका में कुछ प्रकार की आईडी की आवश्यकता है

  तालिका # vdata (id int पहचान (1,1), कोला बनाना Varchar (10), कोल्ब varchar (10)); # Vdata मानों ('ए', 'बी'), ('बी', 'सी'), ('ए', 'एक्स'), ('जेड', 'एल'), ('एन' 'एम'), ( 'ओ', 'पी'), ( 'आर', 'Z'), ( 'एक्स', 'वाई'), ( 'टी', 'एन'), ( 'एफ', 'ई'), ( 'जी', 'एच'); जड़ें के साथ (चयन 1 के रूप में स्तर, आईडी, आईडी के रूप में शीर्ष, कोला, colv FROM #vdata यूनियन सभी का चयन स्तर + 1 के स्तर, # vdata.id, रूट। टोपीड, # vdata.cola, # vdata.colb रूट्स से इनर JOV #vdata ON (# vdata.id & gt; Roots.id) और (# vdata.cola = Roots.cola या # vdata.cola = Roots.colb या # vdata.colb = Roots.cola या # vdata.colb = रूट्स.colb)), मैक्सिलएवल एएस (SELECT id, topid, DENSE_RANK () ओवर (ऑस्टर्ड बाय टॉपेड) रूटनबस, कोला, कोब से रूट्स जहां स्तर = (चुनें MAX (स्तर) रूट्स से इनररूट्स जहां इनररूट.आईडी = रूट्स .id)) रोलन संख्या से  
चयन करें पंक्ति संख्या, कोला,

Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -