Bỏ qua đến nội dung
Bỏ qua điều hướng
Đăng nhập
MT.NET.VN

Viewbh Xu Ly Duplicate Trong Sql

Tìm kiếm
Thuộc khóa học · baihoc_sub = 50

MS SQL ( Basic to Pro )

Bài 1 / 1 trong khóa học.

Xem khóa học
100%
Bài trướcĐây là bài đầu tiên Bài sauĐây là bài cuối cùng
MT LEARNING · LESSON

Xử lý duplicate trong SQL

Xử lý duplicate trong SQL

Xử lý duplicate trong SQL

Xử lý duplicate trong SQL


 

Có thể có tình huống khi bạn có nhiều bản ghi trùng lặp trong một bảng. Trong khi lấy ra bản ghi như vậy, chỉ cần lấy các bản ghi duy nhất mà thôi chứ không phải lấy các bản ghi trùng lặp.

Từ khoá DISTINCT trong SQL, được sử dụng kết hợp với câu lệnh SELECT để loại bỏ tất cả các bản ghi trùng lặp và chỉ lấy ra các bản ghi duy nhất.

Cú pháp

Cú pháp cơ bản của một từ khoá DISTINCT để loại bỏ các bản ghi trùng lặp như sau.

  SELECT DISTINCT column1, column2,.....columnN   FROM table_name  WHERE [condition]  

 

Ví dụ

Hãy xem xét bảng CUSTOMERS có các bản ghi sau.

  +----+----------+-----+-----------+----------+  | ID | NAME     | AGE | ADDRESS   | SALARY   |  +----+----------+-----+-----------+----------+  |  1 | Ha Anh   |  32 | Da Nang   |  2000.00 |  |  2 | Van Ha   |  25 | Ha Noi    |  1500.00 |  |  3 | Vu Bang  |  23 | Vinh      |  2000.00 |  |  4 | Thu Minh |  25 | Ha Noi    |  6500.00 |  |  5 | Hai An   |  27 | Ha Noi    |  8500.00 |  |  6 | Hoang    |  22 | Ha Noi    |  4500.00 |  |  7 | Binh     |  24 | Ha Noi    | 10000.00 |  +----+----------+-----+-----------+----------+  

Trước tiên, chúng ta hãy xem cách truy vấn SELECT sau đây sẽ trả về danh sách SALARY.

  SELECT SALARY FROM CUSTOMERS     ORDER BY SALARY;  

Điều này sẽ tạo ra kết quả sau khi mức lương 2000 đã hiển thị hai lần, đó là do có bản ghi trùng lặp.

  +----------+  | SALARY   |  +----------+  |  1500.00 |  |  2000.00 |  |  2000.00 |  |  4500.00 |  |  6500.00 |  |  8500.00 |  | 10000.00 |  +----------+  

Bây giờ, hãy sử dụng từ khóa DISTINCT với truy vấn SELECT ở trên và xem kết quả.

  SELECT DISTINCT SALARY FROM CUSTOMERS     ORDER BY SALARY;  

Điều này sẽ tạo ra kết quả sau và không có hạng mục nào bị trùng lặp.

  +----------+  | SALARY   |  +----------+  |  1500.00 |  |  2000.00 |  |  4500.00 |  |  6500.00 |  |  8500.00 |  | 10000.00 |  +----------+  
Bài tiếp theo: Các hàm Date trong SQL

Check performance issue

  -----------------------------------  /* QUERY CHECKING UPON SLOWNESS */  -----------------------------------  SELECT SPID, ER.percent_complete,  CAST (((DATEDIFF (s, start_time, GetDate ())) /  3600) as varchar) + 'hour (s),'  + CAST ((DATEDIFF (s, start_time, GetDate  ())% 3600) / 60 as varchar) + 'min,'  + CAST ((DATEDIFF (s, start_time, GetDate  ())% 60) as varchar) + 'sec' as running_time,  CAST ((estimated_completion_time / 3600000) as  varchar) + 'hour (s),'  + CAST ((estimated_completion_time%  3600000) / 60000 as varchar) + 'min,'  + CAST ((estimated_completion_time% 60000)  / 1000 as varchar) + 'sec' as est_time_to_go,  DATEADD (second, estimated_completion_time /  1000, getdate ()) as est_completion_time,  /* End of Article Code */  ER.command, ER.blocking_session_id, SP.DBID,  LASTWAITTYPE,  DB_NAME (SP.DBID) AS DBNAME,  SUBSTRING (est.text, (ER.statement_start_offset /  2) +1,  ((CASE ER.statement_end_offset  WHEN -1 THEN DATALENGTH (est.text)  ELSE ER.statement_end_offset  END - ER.statement_start_offset) / 2) +  1) as QueryText,  TEXT, CPU, HOSTNAME, LOGIN_TIME, LOGINAME,  SP.status, PROGRAM_NAME, NT_DOMAIN, NT_USERNAME  FROM SYSPROCESSES SP  INNER JOIN sys.dm_exec_requests ER  ON sp.spid = ER.session_id  CROSS APPLY SYS.DM_EXEC_SQL_TEXT (er.sql_handle)  EST  ORDER BY CPU DESC  select sqltext.Text,  req.session_id,  req.status,  req.command,  req.cpu_time,  req.total_elapsed_time  from sys.dm_exec_requests req  cross apply sys.dm_exec_sql_text(sql_handle)  as sqltext  

 

ĐÁNH GIÁ NỘI DUNG 0.0/5 0 lượt đánh giá
Bạn thấy nội dung này thế nào?
Mỗi trình duyệt/tài khoản được chấm lại sau 24 giờ.
Báo bài lỗiGiúp MT.Net.VN phát hiện nội dung cần kiểm tra
Báo lỗi được ghi vào hệ thống để Admin kiểm tra. Không dùng chức năng này để gửi hỗ trợ cá nhân.

Bài học vừa xem

Lịch sử gần đây trên trình duyệt này.

Home Dịch vụ Khóa học CPanel