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

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -