- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
Hướng dẫn tìm kiếm và xóa dữ liệu trùng lắp Duplicate trong Microsoft Sqlserver 2016
Bài viết hôm nay, mình xin hướng dẫn các bạn cách tìm kiếm và xóa dữ liệu trùng lắp trong Sql server. Trong quá trình, làm việc với Sqlserver, không ít lần dữ liệu của các bạn có thể bị trùng lắp (Duplicate), mà những dữ liệu đó không cần thiết, bạn có thể xóa chúng đi để tối ưu hóa database hoặc tính toán dữ liệu được chính xác.
Vậy làm cách nào để có thể tìm kiếm ra những dòng dữ liệu trùng đó, và xóa chúng đi chỉ để lại duy nhất một dòng.
Các ban có thể làm theo hướng dẫn bên dưới, chỉ một vài dòng lệnh T-SQL, có thể giải quyết được vấn đề.
Ví dụ: mình có database dữ liệu NORTHWND và bảng table Customer làm ví dụ:
Cấu trúc dữ liệu của bảng Customer:
Dưới đây là dữ liệu của bảng Customer.
Các bạn có thể thấy dữ liệu ở hình trên cột Country trùng nhau.'
Bây giờ, mình viết câu lệnh đếm xem cộ Country có bao nhiêu dòng dữ liệu bị trùng, và dòng dữ liệu nào trùng sẽ hiển thị lên
select * from Customers
SELECT country , COUNT(country) AS number_record
FROM Customers
GROUP BY Country
HAVING COUNT(country) > 1
- Tiếp theo, mình viết tiếp câu lệnh cho hiển thị đầy đủ những dòng dữ liệu bị Duplicate
SELECT *
FROM Customers
WHERE country IN (
SELECT country
FROM Customers
GROUP BY Country
HAVING COUNT(Country) > 1
)
ORDER BY country
- Câu lệnh xóa dữ liệu trùng nhau, chỉ để lại một Record duy nhất
Đầu tiên, các bạn thêm vào cột Id kiểu int và cho tự động tăng. (indentity = true), để mình lấy dòng nào có id lớn hơn sẽ để lại một dòng, nếu sql vẫn không cho các bạn xóa vì dính tham chiếu khóa, các bạn có thể tắt khóa chính, sau khi chạy xong câu lệnh rồi bật lên lại.
DELETE n1
FROM customers n1, customers n2
WHERE n1.country = n2.country AND n1.id > n2.id
Các bạn có thể download dữ liệu NORTHWND tại link bên dưới
Chúc các bạn thành công. Mọi câu hỏi thắc mắc đến bài viết xin truy cập http://hoidap.laptrinhvb.net để được support.
ĐỪNG QUÊN LIKE AND SHARE NHA CÁC BẠN.
CÁM ƠN CÁC BẠN ĐÃ THEO DÕI.