📜  删除 MS SQL Server 中的重复项

📅  最后修改于: 2022-05-13 01:55:48.338000             🧑  作者: Mango

删除 MS SQL Server 中的重复项

任何表中的重复值可能是由于表设计不佳或来自其他来源的不需要的数据。要从 SQL Server 中的表中删除重复数据,请按照以下步骤操作 -

  1. 查找重复行。
  2. 使用 DELETE 语句删除重复的行。

让我们创建一个名为 Geek 的表——

CREATE TABLE Geek(
Name NVARCHAR(100) NOT NULL,
Email NVARCHAR(255) NOT NULL,
City NVARCHAR(100) NOT NULL);


让我们在 Geek 表中插入一些值——

INSERT INTO Geek (Name, Email, City) VALUES
('Nisha', 'nisha@gfg.com', 'Delhi'),
('Megha', 'megha@gfg.com', 'Noida'),
('Khushi', 'khushi@gfg.com', 'Jaipur'),
('Khushi', 'khushi@gfg.com', 'Jaipur'),
('Khushi', 'khushi@gfg.com', 'Jaipur'),
('Hina', 'hina@gfg.com', 'Kanpur'),
('Hina', 'hina@gfg.com', 'Kanpur'),
('Misha', 'misha@gfg.com', 'Gurugram'),
('Misha', 'misha@gfg.com', 'Gurugram'),
('Neha', 'neha@gfg.com', 'Pilani');


让我们显示 Geek 表的内容——

SELECT * 
FROM Geek;

表 –极客

NameEmailCity
Nishanisha@gfg.comDelhi
Meghamegha@gfg.comNoida
Khushikhushi@gfg.comJaipur
Khushikhushi@gfg.comJaipur
Khushikhushi@gfg.comJaipur
Hinahina@gfg.comKanpur
Hinahina@gfg.comKanpur
Hinahina@gfg.comKanpur
Mishamisha@gfg.comGurugram
Mishamisha@gfg.comGurugram
Nehaneha@gfg.comPilani


SQL Server 查询从 Geek 表中删除重复记录:

WITH CTE AS (
SELECT Name, Email, City
ROW_NUMBER() OVER (
PARTITION BY Name, Email. City
ORDER BY Name, Email. City
) row_num
FROM Geek
)
DELETE FROM CTE
WHERE row_num > 1;


输出 -
(受影响的 5 行)

SELECT * 
FROM Geek;

表 –极客

NameEmailCity
Nishanisha@gfg.comDelhi
Meghamegha@gfg.comNoida
Khushikhushi@gfg.comJaipur
Hinahina@gfg.comKanpur
Mishamisha@gfg.comGurugram
Nehaneha@gfg.comPilani