Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

DISTINCT само за една колона

Ако използвате SQL Server 2005 или по-нова версия, използвайте това:

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

РЕДАКТИРАНЕ:Пример за използване на клауза 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. Съхраняване на съобщението за рейзрор на SqlServer в C#

  2. Как да експортирате данни на SQL Server от таблица в CSV файл

  3. поръчка чрез newid() - как работи?

  4. Как мога да разбера дали SQLexception е изхвърлен поради нарушение на външния ключ?

  5. Как да създадете ограничение за проверка на множество колони в SQL Server - SQL Server / TSQL урок, част 84