Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да премахнете дублиращи се записи в таблица?

Не давате името на масата си, но мисля, че нещо подобно трябва да работи. Просто оставям записа, който случайно има най-нисък идентификатор. Може да искате първо да тествате с ROLLBACK!

BEGIN TRAN
DELETE <table_name>
FROM <table_name> T1
WHERE EXISTS(
SELECT * FROM <table_name> T2 
WHERE     
T1.TYPE_INT = T2.TYPE_INT  AND
T1.SYSTEM_VALUE = T2.SYSTEM_VALUE  AND
T1.NAME = T2.NAME  AND
T1.MAPPED_VALUE = T2.MAPPED_VALUE  AND
T2.ID > T1.ID
)

SELECT * FROM <table_name>

ROLLBACK


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL - създайте съхранена процедура в изявление за транзакция

  2. Намиране на дубликати в една колона с помощта на select where в SQL Server 2008

  3. T-SQL получава основен възел в йерархията

  4. Как да коригирате „Изразът EXECUTE не бе успешен, защото неговата клауза WITH RESULT SETS посочи 2 колона(и) за набор от резултати...“ Msg 11537 в SQL Server

  5. Намерете всички пропуски в цели числа в SQL