sql server 2005 - How to add a identity column that is unique per grouping -
कहो मेरे पास 2 कॉलम हैं
उत्पाद Product_Cat ------- - --------- बिल्ली 0 कुत्ते 0 आलू 2 गाजर 2 लाँड्री 1 बर्ड 0
मैं एक तीसरी पहचान कॉलम पर जोड़ना चाहता हूं, लेकिन मैं चाहता हूं कि संख्या को प्रति अद्वितीय होना चाहिए Product_Cat तो आउटपुट दिखेंगे
<प्री> उत्पाद Product_Cat Cat_Ident ------- ----------- --------- बिल्ली 0 1 2 कुत्ता 0 2 आलू 1 गाजर 2 2 कपड़े धोने का 1 1 बर्ड 0 3
यदि आप ऐसा करते हैं कैसे?
निश्चित रूप से यह नहीं है मेरा असली डेटा लेकिन मैं क्या करना चाहता हूँ की एक सरलीकरण। मेरे लाइव सिस्टम में मैं "Product_Cat" के 4585 विभिन्न मूल्यों है और वे 1 से 2408 "उत्पाद" श्रेणी में करने के लिए सीमा होती है।
इस प्रकार आप उपयोग करने की आवश्यकता:
टेबल #Products (आईडी int पहचान (1,1), उत्पाद nvarchar (8), Product_Cat पूर्णांक) बनाने GO # में डालने उत्पाद (उत्पाद, Product_Cat) मूल्यों ( 'बिल्ली', 0), ( 'कुत्ता', 0), ( 'आलू', 2), ( 'गाजर', 2), ( 'धुलाई', 1), ( 'बर्ड ', 0) GO ALTER तालिका #Products #Products से) # पर रैंकिंग (द्वारा आईडी के आधार पर Product_Cat आदेश भाग) में जोड़ें Cat_Ident पूर्णांक से अपडेट #Products SET Cat_Ident = rankVal #Products अंदरूनी से शामिल हों (आईडी का चयन करें, RANK () से अधिक rankVal के रूप में Products.ID = rankings.ID का चयन करें * से #Products ड्रॉप तालिका #Products
परिणाम है:
आईडी उत्पाद Product_Cat Cat_Ident --------- - -------- ----------- ----------- 1 कैट 0 1 2 कुत्ता 0 2 3 आलू 2 1 4 गाजर 2 2 5 लाँड्री 1 1 6 बर्ड 0 3 (6 पंक्ति प्रभावित)
Comments
Post a Comment