sql >> Base de Datos >  >> RDS >> Sqlserver

SQL:use campos calculados de SELECT en la cláusula WHERE

Use una CTE (expresión de tabla común), una especie de vista "en línea" solo para la siguiente declaración:

;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!