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

उसी तालिका से समान डेटा अपडेट करें

आप बस एक EXISTS जोड़ सकते हैं भाग:

-----create table
CREATE TABLE #Test(ID INT, CAR VARCHAR(30), ACTIVE INT)

INSERT INTO #Test(ID, CAR, ACTIVE)
VALUES
(1, 'AAA-25-35', 0),
(2, 'LDB-25-35', 0),
(3, 'LDB-00-35', 0),
(4, 'LDB-25-35', 0),
(5, 'LDB-00-35', 0),
(6, 'LDC-10-10', 0),
(7, 'LDC-10-10', 0),
(8, 'LDB-00-35', 0)


----update table
;WITH CTE AS
(
  SELECT ROW_NUMBER() OVER(PARTITION BY CAR ORDER BY ID) AS t,
         CAR,
         ACTIVE
  FROM #Test
)

UPDATE CTE
SET ACTIVE = 1
WHERE t=1
AND EXISTS (SELECT 1 FROM CTE c WHERE c.CAR = CTE.CAR GROUP BY CAR HAVING COUNT(*) > 1)

SELECT * 
FROM #Test


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर मॉनिटरिंग के साथ अलर्ट ओवरलोड को रोकने में मदद करने के 4 तरीके

  2. क्या एक चेक बाधा किसी अन्य तालिका से संबंधित हो सकती है?

  3. SQL सर्वर ट्रिगर:DML ट्रिगर

  4. अद्वितीय आईडी के साथ sql तालिका में उत्तर संग्रहीत करें और प्रत्येक उत्तर को कॉलम में संग्रहीत करें

  5. SQL सर्वर में xml आउटपुट में xml एन्कोडिंग <?xml संस्करण =1.0 एन्कोडिंग =UTF-8?> कैसे जोड़ें?