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

DISTINCT chỉ cho một cột

Nếu bạn đang sử dụng SQL Server 2005 trở lên, hãy sử dụng cái này:

SELECT *
  FROM (
                SELECT  ID, 
                        Email, 
                        ProductName, 
                        ProductModel,
                        ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                    FROM Products
              ) a
WHERE rn = 1

CHỈNH SỬA:Ví dụ sử dụng mệnh đề where:

SELECT *
  FROM (
                SELECT  ID, 
                        Email, 
                        ProductName, 
                        ProductModel,
                        ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                    FROM Products
                   WHERE ProductModel = 2
                     AND ProductName LIKE 'CYBER%'

              ) a
WHERE rn = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo bảng bằng cách sử dụng truy vấn chọn trong SQL Server?

  2. Làm cách nào để mô phỏng UNPIVOT trong Access?

  3. TDS Server - Sử dụng các câu lệnh Transact-SQL (T-SQL) để làm việc với dữ liệu Salesforce trong SQL Server

  4. WHERE IN (mảng ID)

  5. Lấy tên của một cột từ ID của nó trong SQL Server:COL_NAME ()