Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tìm các hàng trùng lặp trong cơ sở dữ liệu

Điều này sẽ hoạt động trên khá nhiều phương ngữ SQL:

SELECT last_name, first_name FROM names
WHERE last_name IN (
    SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
)

Tuy nhiên, nó sẽ cung cấp cho bạn một tập hợp kết quả như thế này:

Smith     Jack
Smith     Joe
Smith     Anna
Sixpack   Joe
Sixpack   Eve

Giải pháp thanh lịch nhất để hiển thị điều này ở định dạng mong muốn IMO là chỉ cần sắp xếp lại tập kết quả theo chương trình trong ứng dụng khách thay vì kéo tất cả các loại nguy hiểm SQL khó hiểu; một cái gì đó như (mã giả):

for each row in resultset
   if row[last_name] <> previous_last_name
      print newline, print last_name
   print ' '
   print first_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn LISTAGG ORA-00937:không phải là một hàm nhóm đơn

  2. Sắp xếp lại các cột của bảng trong Oracle

  3. Truy vấn trong Excel không có tiêu đề - Oracle

  4. Có lý do gì để sử dụng cả khóa chính và khóa duy nhất cùng nhau trên cùng một trường không?

  5. Không thể thả bảng vừa được tạo