sql >> Database teknologi >  >> RDS >> Sqlserver

DISTINCT for kun én kolonne

Hvis du bruger SQL Server 2005 eller nyere, skal du bruge denne:

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

EDIT:Eksempel ved at bruge en where-sætning:

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. Eliminering af duplikering af Where-udtryk i applikationen

  2. Brug af CASE-udtryk i SQL Server

  3. Hvordan PERIOD_ADD() virker i MariaDB

  4. Indsæt data i SQL Server 2017