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

परिणाम सेट में मानों को दोहराने के लिए रिक्त स्थान दिखाता है

ROW_NUMBER OVER PARTITION BY जोड़कर CTE में अपनी मौजूदा क्वेरी को रैप करें आपके कॉलम, जो मूल्यों के प्रत्येक समूह के लिए RN बनाएंगे। बाहरी क्वेरी में केवल उन मानों का चयन करने के लिए CASE का उपयोग करें जहां GRP_RN =1 और खाली स्ट्रिंग अन्यथा।

WITH CTE AS 
(
    Select  distinct top 100000 
        o.EventSetName,       
        o.EventSetDisplay,
        o.EventSetDescription,
        o.ChildSetName,
        ROW_NUMBER() Over (Order By f.ChildSetName) RN,
        f.DocumentDispSequence,
        f.SectionDispSequence,
        o.ObsSetDispSequence,
        null  as NullColumnNeedsName,
        ROW_NUMBER() OVER (PARTITION BY o.EventSetName, o.EventSetDisplay,o.EventSetDescription ORDER BY f.ChildSetName) GRP_RN
    From   ##ObsSetLevel o,
    INNER JOIN ##Final f ON f.ChildSetName = o.EventSetName and o.EventSetName = @variableName
)
SELECT
    CASE WHEN GRP_RN = 1 THEN o.EventSetName ELSE '' AS EventSetName,
    CASE WHEN GRP_RN = 1 THEN o.EventSetDisplay ELSE '' AS EventSetDisplay,
    CASE WHEN GRP_RN = 1 THEN o.EventSetDescription ELSE '' AS EventSetDescription,
    other columns
FROM CTE  
Order By RN asc, DocumentDispSequence asc, SectionDispSequence asc, o.ObsSetDispSequence asc

पुनश्च:मैंने आपके पुराने स्टाइल जॉइन के उपयोग को भी ठीक कर दिया है। SQL-92 मानकों की शुरूआत के साथ यह उपयोग 20 साल से अधिक पुराना है। आपको इनका इस्तेमाल करने से बचना चाहिए।




  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 सर्वर Nvarchar और Java ने स्टेटमेंट तैयार किया

  2. SQL सर्वर 2008 में अल्पविराम द्वारा विभाजित कार्य

  3. SQL सर्वर एजेंट अलर्ट

  4. अद्वितीय माता-पिता को बच्चे से जोड़ने के लिए क्वेरी की आवश्यकता है जो अद्वितीय नहीं है लेकिन MAX . के साथ अद्वितीय बनाया जा सकता है

  5. डेटाबेस में छवि डालें