Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

प्रमुख गद्देदार शून्य के साथ SQL पहचान

जैसा कि अन्य ने पहले ही सही बताया है - एक आईएनटी में कभी भी अग्रणी शून्य नहीं होते हैं - यह केवल मूल्य रखता है, बस इतना ही (और यह उस तरह से अच्छा है)।

यदि आपको कुछ अतिरिक्त स्वरूपण की आवश्यकता है, तो आप हमेशा अपनी तालिका में एक परिकलित स्तंभ जोड़ सकते हैं, जैसे:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber AS  RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

इस तरह, आपकी INT पहचान का उपयोग INT के रूप में किया जाएगा और इसमें हमेशा संख्यात्मक मान होगा, जबकि DisplayNumber इसमें 001, 002, ... 014, 015, ..... . शामिल हैं और इसी तरह - स्वचालित रूप से, हमेशा अप टू डेट।

चूंकि यह एक स्थायी क्षेत्र है, यह अब आपकी तालिका का हिस्सा है, और आप इस पर क्वेरी कर सकते हैं, और यहां तक ​​कि प्रश्नों को तेज़ करने के लिए इस पर एक इंडेक्स भी डाल सकते हैं:

SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'

और निश्चित रूप से, आप अपने गणना किए गए कॉलम की परिभाषा में लगभग किसी भी स्वरूपण का उपयोग कर सकते हैं, ताकि आप एक उपसर्ग या कुछ भी जोड़ सकें:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber 
      AS  'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

तो इस मामले में, आपका DisplayNumber होगा ABC-001, ABC-002, ... और इसी तरह।

आप दोनों दुनिया में सर्वश्रेष्ठ प्राप्त करते हैं - आप अपनी INT पहचान रखते हैं जो संख्यात्मक है और स्वचालित रूप से SQL सर्वर द्वारा बढ़ाई जाती है, और आप किसी भी तरह से एक प्रदर्शन प्रारूप को परिभाषित कर सकते हैं और इसे किसी भी समय उपलब्ध कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रोएक्टिव SQL सर्वर स्वास्थ्य जाँच, भाग 1 :डिस्क स्थान

  2. आप TSQL का उपयोग करके डेटाबेस में सभी तालिकाओं को कैसे काटते हैं?

  3. SQL सर्वर:GROUP BY में केवल अंतिम प्रविष्टि

  4. एक अप्रत्यक्ष ग्राफ के सभी जुड़े हुए सबग्राफ कैसे खोजें

  5. एक शर्त के अनुसार प्रतिध्वनि छवि