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

प्राथमिक कुंजी के बिना तालिका में डुप्लिकेट फ़िल्टर करना

declare @T table
(
  catalogue_code int,
  purcha varchar(5),
  stock_ varchar(5)
)

insert into @T values
(1001,            'Box',     'Box'),
(1001,            'Box',     'Box'),
(1002,            'AA',      'AA'),
(1002,            'MM',      'MM'),
(1002,            'EA',      'EA'),
(1002,            'Set',     'Set'),
(1002,            'Kit',     'Kit'),
(1004,            'Set',     'Set')

;with C as
(
  select *,
         row_number() over(partition by catalogue_code 
                           order by case when purcha = 'EA'
                                         then 0
                                         else 1
                                    end) as rn
  from @T
)
select *
from C
where rn = 1

परिणाम:

catalogue_code purcha stock_ rn
-------------- ------ ------ --------------------
1001           Box    Box    1
1002           EA     EA     1
1004           Set    Set    1

इसे SE-Data Explorer पर आज़माएं:https://data.stackexchange.com/stackoverflow/ क्यू/114648/



  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 सर्वर तालिका में डेटा सम्मिलित करने के विभिन्न तरीके क्या हैं - SQL सर्वर / TSQL ट्यूटोरियल भाग 100

  2. हेक्साडेसिमल मान 0x00 एक अमान्य वर्ण है

  3. क्या मैं अपने डेटाबेस सर्वर में किसी अन्य डेटाबेस सर्वर से दृश्य बना सकता हूँ?

  4. SQL सर्वर में लेनदेन का सही उपयोग

  5. SQL सर्वर (T-SQL उदाहरण) में 'datetimeoffset' को 'तिथि' में बदलें