Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL:Use campos calculados do SELECT na cláusula WHERE


Use um CTE (Common Table Expression) - uma espécie de visualização "inline" apenas para a próxima instrução:
;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!