Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL :utilisez des champs calculés à partir de SELECT dans la clause WHERE

Utilisez un CTE (Common Table Expression) - une sorte de vue "inline" juste pour la prochaine instruction :

;WITH MyCTE AS
(
    SELECT 
        RANK() OVER(PARTITION BY XXX ORDER BY yyy,zzz,oooo) as ranking, 
        * 
    FROM SomeTable
) 
SELECT * 
FROM MyCTE
WHERE ranking = 1 --> this is now possible!