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

मैं SQL सर्वर से अगला उपलब्ध नंबर कैसे प्राप्त करूं? (पहचान कॉलम नहीं)

मुझे लगता है कि आप अगले उपलब्ध प्रश्न के बाद हैं, हालांकि यह अधिकतम + 1 के समान नहीं हो सकता है? - उस स्थिति में:

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

;WITH CTE_Numbers AS (
    SELECT n = 2001
    UNION ALL
    SELECT n + 1 FROM CTE_Numbers WHERE n < 4000 
)
SELECT top 1 n 
FROM CTE_Numbers num
WHERE NOT EXISTS (SELECT 1 FROM MyTable tab WHERE num.n = tab.groupid)
ORDER BY n

नोट:आपको 2001/4000 में बदलाव करना होगा मान CTE में आपकी इच्छित सीमा की अनुमति देने के लिए है। मैंने आपकी तालिका का नाम MyTable . द्वारा मान लिया है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संग्रहीत कार्यविधि का परिणाम चर में प्राप्त करने में सक्षम नहीं है?

  2. ओपनरोसेट फ़ंक्शन का उपयोग करके एक्सेल 2003 से डेटाबेस में डेटा आयात नहीं कर सकता

  3. पैरामीटर के साथ प्रक्रिया

  4. अस्थायी तालिका से फ़ील्ड नाम कैसे प्राप्त करें (SQL Server 2008)

  5. CURSOR के अंदर डायनेमिक SQL क्वेरी कैसे बनाएं?