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
Post a Comment